2017-10-18 6 views
0

Je reçois cette erreur d'une fonction QueueTrigger qui nécessite également une liaison CloudQueue.Azure Functions Impossible de lier la file d'attente pour taper CloudQueue

Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexingException: Erreur méthode d'indexation 'QueueInstancesToImport.Run' ---> System.InvalidOperationException: Impossible de lier la file d'attente de type « Microsoft.WindowsAzure.Storage.Queue.CloudQueue '. Selon les documents, CloudQueue doit être valide.

https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-queue

Autres solutions possibles que j'ai trouvé ne correspondent pas exactement ou ne contribuent pas.

Mon code

public static class QueueFormInstancesToImport 
{ 
    [FunctionName("QueueFormInstancesToImport")] 
    public static async Task Run(
     [QueueTrigger("import-queue")]string message, 
     [Queue("import-queue")]CloudQueue queue, 
     TraceWriter traceWriter, 
     ExecutionContext context) 
    { 
     // Body of function 
     ... 
    } 
} 
+1

Non directement lié à votre problème, mais avez-vous vraiment l'intention d'avoir le déclencheur et la sortie contre la même file d'attente? Cela va créer une boucle infinie d'invocations de fonctions –

+0

Votre code devrait fonctionner correctement. Je sens des conflits avec NuGet. Veuillez vérifier que le seul paquet auquel vous faites explicitement référence est 'Microsoft.NET.Sdk.Functions'. – Mikhail

Répondre

1

Ceci est très probablement un conflit paquet NuGet. La version d'assemblage à partir de laquelle provient votre paramètre "CloudQueue" est une version différente de la bibliothèque de stroage que celle utilisée par le runtime Function sous-jacent. Vous pouvez F12 sur la définition CloudQueue pour voir la version d'assembly complète contre laquelle elle est liée.

Vous avez très probablement ajouté une référence supplémentaire au kit de développement Azure Storage. Supprimez la référence supplémentaire et utilisez simplement la référence du modèle Azure Functions.