繁体   English   中英

.NET类库作为具有ServiceBusTopic触发器的Azure功能应用程序不起作用

[英].NET class library as an Azure Function App with ServiceBusTopic trigger does not work

我按照以下URL中的步骤在Visual Studio 2017(非Azure门户)中本地创建了Azure功能应用程序。

https://blogs.msdn.microsoft.com/appserviceteam/2017/03/16/publishing-a-net-class-library-as-a-function-app

我完全按照步骤创建了一个具有“ServiceBusTopicTrigger”的函数。 我将以下内容添加到我的function.json中

{
    “disabled”: false,
    “bindings”: [
        {
            “name”: “mySbMsg”,
            “type”: “serviceBusTrigger”,
            “direction”: “in”,
            “topicName”: “negotiatedaddcharge_test”,
            “subscriptionName”: “clientdispatches”,
            “connection”: “servicebusnac”,
            “accessRights”: “manage”
        }
    ]
}

我的appsenttings.json有以下内容

{
    “IsEncrypted”: true,
    “Values”: {
        “servicebusnac”: “Endpoint=MyCompanyEndPointPlaceHolder”
    }
}

当我在Visual Studio中运行该函数时,我不断收到错误消息“Microsoft.Azure.WebJobs.ServiceBus:Microsoft Azure WebJobs SDK ServiceBus连接字符串'AzureWebJobsservicebusnac'缺失或为空。”

只是为了它,我添加了一个名为“AzureWebJobsservicebusnac”的值集合的另一个条目,但仍然显示相同的消息。 有什么我做错了吗?

另外你如何对这个功能进行单元测试? 我无法访问单元测试项目中csx文件中的任何函数。

谢谢。

编辑:我添加了信息,以明确我在Visual Studio而不是Azure门户中创建函数。

Function App将在Environment变量中搜索Service Bus连接字符串。 您可以从Azure门户设置:

  1. 转到功能应用程序。
  2. 选择编辑器上方的Platform features选项卡。
  3. 单击Application settings
  4. App settings部分下添加一个包含连接名称和字符串的条

appsettings.json文件仅用于支持本地开发,其中定义的设置发布到Azure。

解决方案很简单; 我实际上遇到了这个,它让我彻底难倒了一会儿。

在您的appsettings.json ,将"IsEncrypted"true更改为false 这应该可以解决您所看到的问题。

对于此方案,错误消息不太理想; Azure Functions团队已经为它提供了一个错误修正。

希望这有助于遇到此问题的任何人。 (我发誓,这是我解决这个问题的前一周,并非没有帮助。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM