我尝试使用Azure Webjobs,我理解它的工作方式,但我不明白为什么我需要使用两个连接字符串,一个是用于保存消息的队列,但是
为什么还有一个名为" AzureWebJobsDashboard"
它的目的是什么?
我从哪里得到这个连接字符串?
目前我在同一个解决方案中有一个Web应用程序和一个Webjob,我只在本地进行实验(没有发布任何内容),我在云端得到的一件事是保存队列的存储帐户
我甚至尝试在两个地方(AzureWebJobsDashboard,AzureWebJobsStorage)中放置相同的连接字符串,但抛出异常: "无法绑定参数' log'使用此触发器时。"
谢谢。
答案 0 :(得分:18)
有两个连接字符串,因为WebJobs SDK会在存储帐户中写入一些日志。它为您提供了一个存储帐户仅用于数据(AzureWebJobsStorage
)而另一个存储帐户用于日志(AzureWebJobsDashboard
)的可能性。它们可以是一样的。此外,您需要其中两个,因为您可以使用不同的数据帐户拥有多个作业主机,但将日志发送到同一个仪表板。
您获得的错误与连接字符串无关,而与代码中的某个函数无关。其中一个参数的log
参数不正确。你能分享一下代码吗?
答案 1 :(得分:14)
好的,有人来这里寻找“我从哪里获得ConnectionString”的实际答案......在这里你去。
在新的Azure门户上,您应该拥有存储帐户资源;我的开头是“portalvhds”,然后是一堆字母数字。单击它以查看右侧的资源仪表板,然后立即显示“设置”窗口。在General下查找Keys子菜单 - 单击该子菜单。整个连接字符串在那里(实际上有两个,主要和次要;我目前不了解其中的区别,但是让我们选择Primary,不管是吗?)。
将该文件复制并粘贴到Azure.Web文件和AzureWebJobsStorage项目的connectionString属性上的App.config文件中。这假设您的环境只有一个存储帐户,因此您希望将相同的存储用于数据和日志。
我试过这个,至少WebJob运行时没有抛出错误。
答案 2 :(得分:0)
@RayHAz-扩展您的上述答案(谢谢)...
我尝试了这个https://docs.microsoft.com/en-us/azure/app-service/webjobs-sdk-get-started
但是在.Net Core 2.1中,出现了有关如何找不到连接字符串的异常。
长话短说,我得到了以下对我有用的东西:
在.Net Core 2.1控制台应用程序中的appsettings.json:
myResult = Result 'fails if Result returns object
Set myResult = Result 'fails if Result returns non-object
...和我的Program.cs文件...
{
"ConnectionStrings": {
"AzureWebJobsStorage": "---your Azure storage connection string here---",
"AzureWebJobsDashboard":"---the same connectionstring---"
}
}