无法启动WebJob - “不支持Azure存储模拟器”

时间:2017-10-16 09:24:35

标签: c# azure azure-storage azure-queues

开发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中的所有其他代码,所以它应该做的就是尝试启动并连接到队列。

最后,即使我声明了实时存储的连接字符串,我仍然会得到相同的异常。

为什么呢?这些连接细节有什么问题?

1 个答案:

答案 0 :(得分:6)

检查您是否正在运行Microsoft.Azure.WebJobs v1.x或更早版本。我记得在Microsoft.Azure.WebJobs包的v1.x中,不支持使用AzureWebJobsDashboard或AzureWebJobsStorage的模拟器(我不记得哪些不受支持)。直到&gt; = v2.x才能将模拟器用于这些键。