Erreur lors de la tentative de publication d'une fonction azur à partir de Visual Studio

13

J'obtiens le message d'erreur suivant lorsque j'essaie de publier ma fonction à l'aide de Visual Studio, une idée comment résoudre ce problème?

System.AggregateException: une ou plusieurs erreurs se sont produites. ---> System.Exception: Publish a rencontré une erreur. Nous n'avons pas pu déterminer la cause de l'erreur. Consultez le journal de sortie pour plus de détails. --- Fin de la trace de la pile des exceptions internes --- sur System.Threading.Tasks.Task.ThrowIfExceptional (Boolean includeTaskCanceledExceptions) sur System.Threading.Tasks.Task.Wait (Int32 millisecondsTimeout, CancellationToken annulationToken) sur Microsoft.Publish.Framework. Model.DefaultPublishSteps. <> C__DisplayClass26_0.b__2 () sur System.Threading.Tasks.Task`1.InnerInvoke () sur System.Threading.Tasks.Task.Execute () --- Fin de la trace de pile à partir de l'emplacement précédent où l'exception était levée --- à System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (tâche) à System.Runtime.CompilerServices. TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task task) at Microsoft.Publish.Framework.Model.DefaultPublishSteps.d__23.MoveNext () --- Fin de la trace de la pile de l'emplacement précédent où l'exception a été levée --- à System.Runtime.CompilerServices.TaskAwaiter.Thrccess (Tâche de tâche) sur System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Tâche de tâche) sur Microsoft.Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext () ---> (Exception interne n ° 0) System.Exception: Publish a: rencontré une erreur. Nous n'avons pas pu déterminer la cause de l'erreur. Consultez le journal de sortie pour plus de détails. <--- MoveNext () --- Fin de la trace de la pile à partir de l'emplacement précédent où l'exception a été levée --- sur System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (tâche tâche) sur System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (tâche tâche) sur Microsoft .Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext () ---> (Exception interne # 0) System.Exception: Publish a rencontré une erreur. Nous n'avons pas pu déterminer la cause de l'erreur. Consultez le journal de sortie pour plus de détails. <--- MoveNext () --- Fin de la trace de la pile à partir de l'emplacement précédent où l'exception a été levée --- sur System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (tâche tâche) sur System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (tâche tâche) sur Microsoft .Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext () ---> (Exception interne # 0) System.Exception: Publish a rencontré une erreur. Nous n'avons pas pu déterminer la cause de l'erreur. Consultez le journal de sortie pour plus de détails. <--- d__213.MoveNext () ---> (Exception interne # 0) System.Exception: Publish a rencontré une erreur. Nous n'avons pas pu déterminer la cause de l'erreur. Consultez le journal de sortie pour plus de détails. <--- d__213.MoveNext () ---> (Exception interne # 0) System.Exception: Publish a rencontré une erreur. Nous n'avons pas pu déterminer la cause de l'erreur. Consultez le journal de sortie pour plus de détails. <---

System.Exception: Publish a rencontré une erreur. Nous n'avons pas pu déterminer la cause de l'erreur. Consultez le journal de sortie pour plus de détails.

===================

Recusiwe
la source
Je rencontre un problème similaire en ce moment dans Visual Studio 2019 - bien que j'essaie de publier dans un dossier dans mon cas. J'essaie toujours de trouver la cause de cela, mais j'ai essayé jusqu'à présent dans mon cas: 1.) Vider le cache NuGet, 2.) Supprimer les dossiers bin et obj 3.) Création d'un nouveau profil de dossier que voyez-vous dans le fichier journal de sortie? Quelque chose d'utile?
VirtualValentin
Avez-vous essayé de le déployer via Git viaDeployment Center
pavle

Réponses:

8

Peux-tu essayer this

Supprimez entièrement le paramètre WEBSITE_RUN_FROM_PACKAGE des paramètres d'application Azure Functions du portail Azure.

Sajeetharan
la source
2
Je l'ai fait sans succès.
Recusiwe
Cela a fonctionné pour moi. Je ne sais pas si cela est lié au redémarrage de la fonction Azure lorsque les modifications de l'environnement sont effectuées ou s'il s'agit d'une configuration bloquante.
Justin Neff
5

Il s'agit d'un problème de délai d'attente Visual Studio, ce qui signifie que votre code et certains autres paramètres ne sont pas la clé du problème. Cette erreur se produit car Visual définit une limite de délai d'expiration sur la version. (Le fichier est trop volumineux ou la vitesse Internet est instable)

Si votre projet de déploiement n'est pas trop volumineux, vous pouvez attendre que la vitesse du réseau soit stable avant d'essayer de l'exécuter. Bien sûr, vous pouvez également essayer d'autres méthodes de déploiement pour éviter ce problème, comme le déploiement zip .

BowmanZhu
la source
J'ai réussi à le déployer à l'aide de zipdeploy. Cependant, lorsque je vérifie le contenu de l'application, elle est mise à jour, mais lorsque j'exécute la fonction, elle semble exécuter l'ancienne version?
Recusiwe
@Recusiwe Que signifie «exécuter l'ancienne version»? Voulez-vous dire que la version de la fonction azur a été modifiée? Le déploiement de zip a-t-il résolu ce problème?
BowmanZhu
Avec "ancienne version", je veux dire la dernière version que j'ai pu publier à partir de VS, pas celle déployée en zip. Le contenu de l'application contient le code du zip déployé, mais il ne l'exécute pas. Il exécute une ancienne version.
Recusiwe
@Recusiwe Quelle version de fonction utilisez-vous actuellement? Quel IDE utilisez-vous maintenant? Et qu'est-ce que l'assemblage de votre projet? (Le .csprojfichier) J'ai rencontré une erreur similaire auparavant, il semble qu'un problème d'assemblage à cette époque. Parfois, cette erreur se produit uniquement dans Visual Studio 2019. Vous pouvez essayer d'utiliser Visual Studio 2017 pour voir si cette exception existe toujours. Si vous utilisez Visual Studio 2017, utilisez-vous Resharper? J'essaie de reproduire votre erreur et d'en rencontrer une similaire, mais je ne suis pas sûr que cela soit lié à votre situation.
BowmanZhu
Application fonctionnelle
v.2
0

Sans partager votre projet sur une forme de jeu comme GitHub, il est vraiment difficile pour nous d'offrir des conseils spécifiques, il y a tellement de variables, tellement de combinaisons de packages NuGET et de références que votre projet peut avoir ce conflit de telle manière que cela provoquera ce Erreur.

Surtout avec les fonctions v2, j'ai rencontré ce problème ou similaire plusieurs fois. L'un des facteurs les plus importants avec Functions est les concepts concurrents entre v1 et v2.

Lorsque vous utilisez l'assistant de publication de Visual Studio pour créer la ressource cible dans Azure, il a tendance à avoir plus de succès, si vous rencontrez des difficultés avec cela depuis un certain temps, je vous suggère de suivre ce processus, comme preuve de concept si rien d'autre:

Ce conseil fonctionne aussi bien dans VS2017 et 2019

  1. Créez un nouveau projet de fonction dans Visual Studio, dans la même solution.
    • Répliquez le nom de votre fonction d'origine
  2. Publiez la fonction sur une NOUVELLE ressource Azure, utilisez l'assistant de publication pour créer cette ressource.
  3. Si la publication réussit:
    • Déplacez votre code de projet d'origine vers le nouveau projet
    • Portez une attention particulière aux versions des packages de nuget que vous souhaitez apporter, elles et leurs dépendances devront être conformes à la v2
  4. Si la publication N'EST PAS réussie
    • Assurez-vous de mettre à niveau votre Visual Studio vers la dernière version
    • Assurez-vous que vos outils Azure sont également mis à niveau vers la dernière version

En règle générale, pour un succès général avec Azure Functions:

  1. Utilisez v1 pour les projets .Net Framework, ou si TOUT de vos projets de référence ou packages NuGET ont des dépendances .Net Fx. (donc .Net 4 + ... ou tout ce qui n'est pas .Net Core .)

    Même lorsque ces dépendances ciblent plusieurs projets, avec Functions, le déploiement a tendance à échouer car il n'est pas en mesure de détecter correctement la plate-forme correcte lors de l'évaluation des dépendances NuGET pendant le déploiement.

  2. Utilisez v2 UNIQUEMENT pour les projets .Net Core , assurez-vous que vos références ne sont également que .Net core

Compilez et publiez votre code de manière incrémentielle, utilisez également AzureDevOps ou GitHub ou d'autres référentiels de code source pour archiver votre code souvent avec Functions. Aux premiers stades d'un projet de fonctions, nous apportons souvent plusieurs réfractions et packages NuGET et ils semblent fonctionner localement, mais pas lorsque nous nous déployons.

  • l'utilisation d'un dépôt de code source facilite la validation des modifications avant d'installer de nouveaux packages et la restauration si l'installation du package entraîne un code non déployable.
  • Cela semble désordonné, mais en raison de la version de NuGet, revenir à l'état avant d'installer un package, il ne suffit pas de désinstaller ce package, il peut très facilement avoir mis à niveau d'autres packages, et dans cet environnement Azure en mutation, de nombreux auteurs de packages ont choisi de mettre à niveau leur ressources entre .Net Framework et .Net Core, et ils ne l'ont pas toujours bien fait, ou parfois conservent certains éléments du framework .Net qui provoqueront des conflits dans Azure Functions.

Il y a quelques discussions intéressantes qui peuvent aider:

Chris Schaller
la source
0

La solution consistait à mettre à jour le SDK le plus récent.

Recusiwe
la source
Ça n'a pas marché pour moi.
Justin Neff