Visual studio 警告发布Azure服务总线队列触发器can';在local.settings.json中找不到命名值

Visual studio 警告发布Azure服务总线队列触发器can';在local.settings.json中找不到命名值,visual-studio,azure,azure-functions,azureservicebus,azure-servicebus-queues,Visual Studio,Azure,Azure Functions,Azureservicebus,Azure Servicebus Queues,我有一个Azure service bus队列触发函数,当我创建它时,它问我3个字段:访问权限、连接和队列名称 我输入了监听以获得访问权限。对于连接,我使用了我创建的服务总线中“RootManageSharedAccessKey”中给出的“主连接”名称。 看起来像这样 public static class PostEventEmails { [FunctionName("PostEventEmails")] public static void Run([ServiceBusT

我有一个Azure service bus队列触发函数,当我创建它时,它问我3个字段:访问权限、连接和队列名称

我输入了监听以获得访问权限。对于连接,我使用了我创建的服务总线中“RootManageSharedAccessKey”中给出的“主连接”名称。 看起来像这样

public static class PostEventEmails
{
    [FunctionName("PostEventEmails")]
    public static void Run([ServiceBusTrigger("yogaband2017", AccessRights.Listen, Connection = "Endpoint=sb://yogaband2017.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=gkbGl1BU=")]string myQueueItem, TraceWriter log)
    {
        log.Info($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
    }
}
Endpoint=sb://yogaband2017.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=JG0gwJ90bkbGl1BU=

我在我的服务总线中创建了一个名为yogaband的队列,这就是我用作队列名称的第三个参数

我的函数如下所示

public static class PostEventEmails
{
    [FunctionName("PostEventEmails")]
    public static void Run([ServiceBusTrigger("yogaband2017", AccessRights.Listen, Connection = "Endpoint=sb://yogaband2017.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=gkbGl1BU=")]string myQueueItem, TraceWriter log)
    {
        log.Info($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
    }
}
当我发布函数时,我得到了这个警告

.nuget\packages\microsoft.net.sdk.functions\1.0.2\build\netstandard1.0\microsoft.net.sdk.functions.build.targets(31,5):警告:函数[PostEventEmails]:找不到名为“Endpoint=sb://yogaband2017.servicebus.windows.net/”的值;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=0bkbGl1BU='在local.settings.json中,与“serviceBusTrigger”上设置的“connection”属性匹配[C:\Users\Source\workspace\YogaBand2017\YogaBand2017\PostEventEmails\PostEventEmails.csproj]

在我的站点中,我可以向队列传递消息,并在Azure门户中的队列中看到消息,但该功能不会拾取消息并对其进行处理。因此,我仍然在队列中的活动消息计数中看到“1条消息”。我假设在函数拾取并处理它之后,它将是0,我将在窗口中看到日志跟踪?但我不知道,所以我认为连接不正确,或者我没有正确配置一些东西,但我不知道是什么

下面是我放入local.settings.json文件的内容

{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "Endpoint=sb://yogaband2017.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=bGl1BU=",
"AzureWebJobsDashboard": ""}}
仅供参考-以下是我如何将mesage发送到c中的队列#

在我的web.config文件中,我添加了这个

<add key="Microsoft.ServiceBus.ConnectionString" value="Endpoint=sb://yogaband2017.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=0gwJ90bkbGl1BU="/>

Connection
应将
ServiceBusTrigger
的属性设置为设置名称,而不是连接字符串本身:

[ServiceBusTrigger(“yogaband2017”,AccessRights.Listen,Connection=“MyConn”)]
然后在本地开发环境的
local.settings.json
中定义一个具有此名称的设置:

{
“IsEncrypted”:错误,
“价值观”:{
“AzureWebJobsStorage”:“…azure存储连接字符串…”,
“MyConn”:“…服务总线连接字符串…”
}
}
以及Azure部署的应用程序内设置


请注意,
azurewebjobstorage
不是服务总线连接。

坦率地说,这是谷歌对这个错误的最重要的搜索结果,所以请在别处搜索@MikhailShilkov@SSHThis那不是两年前的事了!:)已删除注释。如何将其设置为变量,如ConfigurationBuilder的ConfigurationRoot?是否有说明此内容的文档链接?定义连接方式的字符串不被视为connectionString,这对我来说没有什么意义