1

我按照以下 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”
        }
    ]
}

我的 appenttings.json 有以下内容

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

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

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

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

谢谢。

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

4

2 回答 2

3

Function App 将在环境变量中搜索您的服务总线连接字符串。您可以从 Azure 门户设置这些:

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

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

于 2017-05-04T14:52:14.740 回答
0

解决方法很简单;实际上,我自己也遇到了这个问题,这让我完全难倒了一段时间。

在您的中,从appsettings.json更改为。这应该可以解决您看到的问题。"IsEncrypted"truefalse

对于这种情况,错误消息并不理想;Azure Functions 团队已经对其进行了错误修复。

希望这可以帮助遇到此问题的任何人。(我发誓,在我弄清楚这一点之前已经过了一周,而且并非没有帮助。)

于 2017-05-23T20:23:21.953 回答