简体   繁体   中英

Unable to start WebJob - “Azure Storage Emulator is not supported”

While developing an Azure WebJob I encounter the exception

Failed to validate Microsoft Azure WebJobs SDK Storage account. The Microsoft Azure Storage Emulator is not supported, please use a Microsoft Azure Storage account hosted in Microsoft Azure.'

This seems to be fairly common and the solution is usually to update the connection string to a specific value . However, in my case I already have this specific connection string.

Furthermore, I have two WebJobs in the same solution: I'm using exactly the same connection strings in both cases, and the other WebJob connects without any problems.

In the App.config I have

<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>

The same connection string appears under 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>

I've found that entering UseDevelopmentStorage=true makes no difference.

I've also tried manually declaring these in the 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;";

and when I do this, the exception is then thrown on

config.StorageConnectionString = ...

I'm running v5.2 of the Azure Storage Emulator - and it is running. And like I said, the other WebJob is able to connect and run without any problems, and they both have identical App.config files.

I've also commented-out all other code in the WebJob so all it should be doing is attempting to start and connect to the queue.

And lastly, even if I declare the connection string for the live storage I still get the same exception.

Why? What is wrong with these connection details?

Check to see if you are running Microsoft.Azure.WebJobs v1.x or earlier. I do recall that in v1.x of the Microsoft.Azure.WebJobs package, using the emulator for the AzureWebJobsDashboard or AzureWebJobsStorage was not supported (I do not remember which was not supported). It wasn't until >= v2.x that you could use the emulator for those keys.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM