93 votes

Erreur HTTP 502.5 - Échec du démarrage de l'ANCM en dehors du processus après la mise à niveau vers ASP.NET Core 2.2

Après avoir mis à niveau mon projet vers ASP.NET Core 2.2, j'ai essayé d'exécuter l'application (localement bien sûr) et le navigateur a affiché un message d'erreur comme dans la capture d'écran ci-dessous.

enter image description here

plus d'erreurs notifiées par l'explorateur d'erreurs de visual studio. Je ne sais pas ce qui se passe.

0 votes

Vous devez également mettre à jour le bundle serveur .NET Core à la même version. Vous ne pouvez pas vous contenter de mettre à jour votre projet, car cela entraînerait un décalage de version dans l'ANCM.

1 votes

@LexLi Le problème a corrompu le local, pas le serveur. J'ai installé dotnet-sdk-2.2.104 et aspnetcore-runtime-2.2.2.

6 votes

Nope. Vous avez besoin du dernier "Runtime & Hosting Bundle" d'ici dotnet.microsoft.com/download/dotnet-core/2.2

5voto

vidriduch Points 3629

Dans mon cas, il s'agissait d'un niveau d'enregistrement incorrect dans le fichier de configuration de l'ordinateur. appsettings.json . Au lieu de Avertissement J'ai eu Avertissez et cela a fait planter l'application avec l'erreur ci-dessus.

1 votes

Oui, moi aussi, j'ai essayé de trouver le problème et j'ai vu qu'il manquait la virgule :(

1voto

Fellow7000 Points 111

J'ai rencontré ce problème aujourd'hui avec mon hébergement - localement tout est ok mais une fois que je publie, j'obtiens cette erreur.

J'ai regardé les paquets et j'ai découvert que certains éléments de .net core ont été mis à niveau vers la version 3.0 preview.

Puis j'ai changé l'option de construction dans VS2019 de "Framework-Dependent" à "Self-contained". Cela a pris 5 fois plus de temps pour construire et publier mais maintenant cela fonctionne.

Je vérifie maintenant avec le support technique de l'hôte ce qui pourrait être un problème - officiellement, ils ne supportent que les 2.1 / 2.2, donc cela pourrait être ces paquets de l'aperçu 3.0, cependant la construction cible est 2.2.

1voto

Mon problème était un fichier appsetttings.json malformé. J'ai activé la journalisation standard via web.config et j'ai pu obtenir l'exception sous-jacente qui génère cette erreur.

1voto

Mike Osipov Points 31

Si la réinitialisation du projet et la copie manuelle des classes Program et Startup ont fonctionné pour vous, alors il y a clairement eu un problème. Il y a des problèmes sous-jacents plus importants. Utiliser le modèle d'hébergement OutOfProcess est correct, mais avec .Net Core 2.2 vous devriez pouvoir utiliser le modèle d'hébergement InProcess, car il est naturellement plus rapide : tout est traité dans IIS, sans saut HTTP supplémentaire entre IIS et le serveur Kestrel de votre application.

Si vous cliquez avec le bouton droit de la souris sur votre fichier de projet dans l'explorateur de solutions de Visual Studio, veuillez vous assurer que la balise AspNetCoreModuleName a la valeur AspNetCoreModuleV2 (par opposition à l'ancienne AspNetCoreModule). Examinez également le journal des événements des applications Windows pour identifier le coupable potentiel. Même si les messages d'erreur sont quelque peu énigmatiques, ils peuvent vous indiquer le numéro de ligne exact du code qui a provoqué l'échec.

Enfin, si vous utilisez CI/CD avec TFS, il se peut que des variables d'environnement dans le fichier appsettings.json n'aient pas été correctement remplacées par les valeurs réelles (URL, etc.).

1voto

Andrew Ravkov Points 227

On dirait que j'ai eu le même problème. Cela arrive parce que si vous n'avez pas de fichier global.json dans la solution, alors VS construit (publie) l'application .net core avec la dernière version installée sur votre PC. Donc, je fais la solution suivante :

ajouter un fichier global.json avec la version .net core.

{
   "sdk": {
      "version": "2.2.402"
   }
}

De docs.microsoft.com :

global.json peut être placé n'importe où dans la hiérarchie des fichiers. Le CLI effectue une recherche ascendante à partir du répertoire du projet pour le premier global.json qu'il trouve. Vous contrôlez les projets auxquels un fichier global.json donné s'applique par sa place dans le système de fichiers. Le CLI .NET recherche un fichier global.json en remontant le chemin depuis le répertoire de travail actuel. Le premier fichier global.json trouvé spécifie la version utilisée. Si cette version est installée, elle est utilisée. Si le SDK spécifié dans le fichier global.json n'est pas trouvé, l'application .NET CLI passe au dernier SDK installé. Le report est le même que le comportement par défaut, lorsqu'aucun fichier global.json n'est trouvé.

https://docs.microsoft.com/en-us/dotnet/core/versions/selection

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X