2017-10-16 7 views
2

Tout en développant une Azure WebJob je rencontre l'exceptionImpossible de démarrer WebJob - "Azure Storage Emulator est pas pris en charge"

Impossible de valider compte Microsoft Azure SDK WebJobs Storage. L'émulateur de stockage Microsoft Azure n'est pas pris en charge. Veuillez utiliser un compte Microsoft Azure Storage hébergé dans Microsoft Azure.

Ceci semble être assez commun et la solution consiste généralement à mettre à jour la chaîne de connexion à a specific value. Cependant, dans mon cas, j'ai déjà cette chaîne de connexion spécifique.

En outre, j'ai deux WebJobs dans la même solution: J'utilise exactement les mêmes chaînes de connexion dans les deux cas, et les autres connexions WebJob sans aucun problème.

Dans le App.config J'ai

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

La même chaîne de connexion apparaît sous 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> 

J'ai trouvé que l'entrée UseDevelopmentStorage=true ne fait aucune différence.

J'ai aussi essayé de déclarer manuellement ces derniers dans le 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;"; 

et quand je le fais, l'exception est alors jeté sur

config.StorageConnectionString = ... 

Je suis en v5.2 de l'émulateur de stockage Azure - et est en cours d'exécution. Et comme je l'ai dit, l'autre WebJob est capable de se connecter et de fonctionner sans problème, et ils ont tous deux des fichiers App.config identiques. J'ai également commenté tous les autres codes dans le WebJob afin que tout ce qu'il devrait faire est de tenter de démarrer et de se connecter à la file d'attente. Et enfin, même si je déclare la chaîne de connexion pour le stockage en direct, je reçois toujours la même exception.

Pourquoi? Quel est le problème avec ces détails de connexion?

+0

Quelle version de Microsoft.Azure.WebJobs utilisez-vous dans chaque projet? Je me souviens que dans v1.x du package Microsoft.Azure.WebJobs, l'utilisation de l'émulateur pour AzureWebJobsDashboard ou AzureWebJobsStorage n'était pas prise en charge (je ne me souviens pas de ce qui n'était pas pris en charge). Ce n'est que> = v2.x que vous pouviez utiliser l'émulateur pour ces clés. –

+0

Si vous mettez ceci dans une réponse plutôt que dans un commentaire, vous obtiendrez tous les points disponibles. – awj

+0

fait, et merci. –

Répondre

3

Vérifiez si vous utilisez Microsoft.Azure.WebJobs v1.x ou version antérieure. Je me souviens que dans v1.x du package Microsoft.Azure.WebJobs, l'utilisation de l'émulateur pour AzureWebJobsDashboard ou AzureWebJobsStorage n'était pas prise en charge (je ne me souviens pas de ce qui n'était pas pris en charge). Ce n'est que> = v2.x que vous pouviez utiliser l'émulateur pour ces clés.

+1

Brillant, c'est tout. J'ai supposé que si j'utilisais le modèle de projet VS 2017 WebJob, je serais à jour, mais clairement pas. Il faisait référence à la v1.2 sortie de la boîte.La mise à jour vers v2 résout le problème. – awj