开发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 = ...
我正在运行Azure存储模拟器的v5.2 - 正在运行。就像我说的那样,另一个WebJob能够毫无问题地连接和运行,并且它们都具有相同的App.config文件。
我还注释掉了WebJob中的所有其他代码,所以它应该做的就是尝试启动并连接到队列。
最后,即使我声明了实时存储的连接字符串,我仍然会得到相同的异常。
为什么呢?这些连接细节有什么问题?
答案 0 :(得分:6)
检查您是否正在运行Microsoft.Azure.WebJobs v1.x或更早版本。我记得在Microsoft.Azure.WebJobs包的v1.x中,不支持使用AzureWebJobsDashboard或AzureWebJobsStorage的模拟器(我不记得哪些不受支持)。直到&gt; = v2.x才能将模拟器用于这些键。