2017-10-16 141 views
2

在開發的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

完成了,謝謝。 –

回答

3

檢查是否運行Microsoft.Azure.WebJobs v1.x或更低版本。我記得在Microsoft.Azure.WebJobs包的v1.x中,不支持使用AzureWebJobsDashboard或AzureWebJobsStorage的模擬器(我不記得哪個不支持)。直到> = v2.x才能使用這些密鑰的模擬器。

+1

輝煌,就是這樣。我假設,如果我使用VS 2017 WebJob項目模板,我會是最新的,但顯然不是。它是開箱即用的v1.2。更新到v2解決了這個問題。 – awj