【发布时间】:2018-03-27 18:36:42
【问题描述】:
在开发 Azure WebJob 时遇到异常
无法验证 Microsoft Azure WebJobs SDK 存储帐户。这 不支持 Microsoft Azure 存储模拟器,请使用 Microsoft Azure 存储帐户托管在 Microsoft Azure 中。'
这似乎相当普遍,解决方法通常是将连接字符串更新为a specific value。但是,就我而言,我已经有了这个特定的连接字符串。
此外,我在同一个解决方案中有两个 WebJobs:我在两种情况下都使用完全相同的连接字符串,而另一个 WebJob 连接没有任何问题。
在 App.config 我有
<connectionStrings>
<add name="AzureWebJobsDashboard" connectionString="DefaultEndpointsProtocol=https;AccountName= ... ;AccountKey= ... " />
<add name="AzureWebJobsStorage" connectionString="DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;" />
</connectionStrings>
appSettings下出现相同的连接字符串:
<appSettings>
<add key="StorageConnectionString" value="DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;" />
<!--<add key="StorageConnectionString" value="UseDevelopmentStorage=true" />-->
</appSettings>
我发现输入UseDevelopmentStorage=true 没有任何区别。
我也尝试在static void Main 中手动声明这些:
var config = new JobHostConfiguration {
JobActivator = new WebJobActivator(kernel)
};
config.DashboardConnectionString = "DefaultEndpointsProtocol=https;AccountName= ... ;AccountKey= ... ";
config.StorageConnectionString = "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;";
当我这样做时,异常会被抛出
config.StorageConnectionString = ...
我正在运行 v5.2 的 Azure 存储模拟器 - 它正在运行。就像我说的,另一个 WebJob 能够毫无问题地连接和运行,并且它们都有相同的 App.config 文件。
我还注释掉了 WebJob 中的所有其他代码,所以它应该做的就是尝试启动并连接到队列。
最后,即使我声明了实时存储的连接字符串,我仍然会遇到同样的异常。
为什么?这些连接细节有什么问题?
【问题讨论】:
-
您在每个项目中使用的是什么版本的 Microsoft.Azure.WebJobs?我记得在 Microsoft.Azure.WebJobs 包的 v1.x 中,不支持使用 AzureWebJobsDashboard 或 AzureWebJobsStorage 的模拟器(我不记得不支持哪个)。直到 >= v2.x,您才能将模拟器用于这些键。
-
如果您将其放在答案而不是评论中,那么您将获得全部积分。
标签: c# azure azure-storage azure-queues