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

问题描述:

在开发的Azure的WebJob我遇到无法验证微软的Azure SDK WebJobs存储帐户异常无法启动WebJob - “不支持Azure存储模拟器”

。 不支持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;"; 

,我这样做的时候,异常然后在

​​

我跑的V5.2抛出Azure存储模拟器 - 并且它正在运行。就像我说的,另一个WebJob能够连接并且没有任何问题地运行,并且它们都有相同的App.config文件。

我也评论了WebJob中的所有其他代码,所以它应该做的就是尝试启动并连接到队列。

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

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

+0

您在每个项目中使用了哪个版本的Microsoft.Azure.WebJobs?我记得在Microsoft.Azure.WebJobs包的v1.x中,不支持使用AzureWebJobsDashboard或AzureWebJobsStorage的模拟器(我不记得哪个不支持)。直到> = v2.x才能使用这些密钥的模拟器。 –

+0

如果你把这个答案而不是评论,那么你会得到满分。 – awj

+0

完成了,谢谢。 –

检查是否运行Microsoft.Azure.WebJobs v1.x或更低版本。我记得在Microsoft.Azure.WebJobs包的v1.x中,不支持使用AzureWebJobsDashboard或AzureWebJobsStorage的模拟器(我不记得哪个不支持)。直到> = v2.x才能使用这些密钥的模拟器。

+1

辉煌,就是这样。我假设,如果我使用VS 2017 WebJob项目模板,我会是最新的,但显然不是。它是开箱即用的v1.2。更新到v2解决了这个问题。 – awj