您好我在Azure门户中创建了一个函数,并看到队列数据已经出列。
我在我的计算机上安装了一个CLI,当我运行该项目时,它将显示一个func.exe命令提示符。我在local.settings.json中添加了这样的连接字符串:
> "Values": {
"AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=...",
"AzureWebJobsDashboard": "DefaultEndpointsProtocol=https;AccountName=...",
"tuxdev_STORAGE": "DefaultEndpointsProtocol=https;AccountName=..."
}
当我在门户中向队列添加消息时,应用程序没有收到消息。我还需要更新哪些其他设置。
答案 0 :(得分:2)
根据您的错误消息,问题似乎是您的班级或方法不公开。如果我将我的方法设置为私有,我也会得到与你相同的错误。
如果我将函数方法设置为 public ,一切正常。该函数将显示我在门户网站中添加的队列。
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
public static class Function1
{
[FunctionName("Function1")]
public static void Run([QueueTrigger("myqueue", Connection = "AzureWebJobsStorage")]string myQueueItem, TraceWriter log)
{
log.Info($"C# Queue trigger function processed: {myQueueItem}");
}
}
或者问题可能与您的nuget包版本有关。您可以升级到最新的Microsoft.NET.Sdk.Functions(截至今天为1.0.6)和Microsoft.Azure.WebJobs.Service.Bus(如果在完整框架上运行,则为2.1.0-beta4)。请参阅此article。
您应该升级到最新的Microsoft.NET.Sdk.Functions(截至今天为1.0.6)和Microsoft.Azure.WebJobs.Service.Bus(如果在完整框架上运行,则为2.1.0-beta4)。您可能需要先删除ServiceBus引用才能升级SDK。
还需要删除Microsoft.Azure.Eventhubs包。所有相关类型等都在Microsoft.Azure.WebJobs.Service.Bus
中还要记得检查"包括预发布"在包管理器中找到2.1.0-beta4