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

39voto

Dans mon cas, j'ai mis à jour certains paquets nuget vers net core 2.2, mais le sdk de net core 2.2 n'était pas installé. Je me suis donc rendu sur le site web de net core pour télécharger le dernier sdk ou le dernier paquet runtime, puis j'ai effectué une opération d'extraction de données. net stop was /y et ensuite un net start w3svc dans le CMD en tant qu'administrateur. Problème résolu pour moi.

4 votes

Qui a fonctionné pour moi. Bien que sur le serveur, seul le runtime devrait être requis.

0 votes

Excellente réponse. Cela a parfaitement fonctionné, mais j'ai mis à jour la version exacte que le projet que je mets en œuvre utilise (ce n'est pas la dernière). Devrait être marqué comme réponse correcte.

0 votes

J'ai téléchargé le bon sdk depuis le site de MS et ça a marché. Merci !

15voto

Zulukas Points 364

J'ai rencontré ce problème et j'ai trouvé une solution différente. Pour moi, c'était parce que j'avais un paquet qui n'était pas à jour avec l'application (je l'avais mis à jour sur NuGet, et la bibliothèque n'avait pas été remplacée dans la production). La mise à jour du paquet a réglé le problème pour moi.

Note avec ça : J'ai dû exécuter manuellement dotnet.exe avec la dll du projet afin de voir le message qui a réglé le problème pour moi.

J'espère que cela aidera quelqu'un d'autre sur la route.

26 votes

Running $ dotnet ./project.dll a en effet révélé le véritable problème et sa résolution a manifestement fonctionné.

0 votes

L'exécution de la commande a donné plus d'informations. J'ai installé la dernière version du SDK

2 votes

C'est ce qui m'a aidé. J'ai couru $ dotnet ./project.dll puis s'est rendu à localhost:5000 comme il le suggérait. C'est là que j'ai vu les journaux d'erreurs qui m'ont conduit à une solution. Pour moi, il s'agissait d'une erreur de syntaxe dans appsettings.Development.json. Allez savoir.

15voto

SumNone Points 454

J'ai rencontré cette erreur après avoir essayé de publier depuis VS2017 vers le serveur Windows 2016 de production. (Cela a bien fonctionné dans IIS Express sur mon PC local Win10).

J'ai mis à jour les paquets, toutes les versions correspondent et sont mises à jour dans mon code, les versions de .net core correspondent, je redémarre IIS, je redémarre... aucune joie.

Dans le menu Publier > Configurer > Paramètres (onglet de gauche), j'ai dû modifier le paramètre Target-runtime de "Portable" à "win-x64" (ou tout autre paramètre pertinent pour votre environnement). J'ai également opté pour "Supprimer les fichiers supplémentaires à la destination".

"Portable" est le paramètre par défaut. Je ne suis pas sûr de ce qu'il faut faire pour que le runtime "Portable" fonctionne correctement, mais cela pourrait faire gagner du temps à quelqu'un d'autre si un runtime "Portable" n'est pas quelque chose dont vous avez besoin.

enter image description here

En général, j'obtiens cette erreur si quelque chose n'est pas adapté dans mon environnement. Par exemple, une fois, j'ai mis à niveau un de mes projets vers .Net Core 3.1 à partir de 2.2 et je n'avais pas installé le pack d'hébergement ASP.NET Core Runtime sur mon serveur :

https://dotnet.microsoft.com/download/dotnet-core/3.1

Vous pouvez également obtenir cette erreur si votre pool d'applications est défini sur True pour Enable 32-Bit Applications. Essayez :

IIS Manager > Pools d'applications > nom du pool d'applications > (clic droit) Avancé Paramètres > Activer les applications 32 bits = False

11voto

Ali Rasouli Points 31

Vous avez 2 solutions (cette réponse fonctionne sur un serveur Windows, je ne connais rien aux serveurs Linux).

d'abord :

  • copiez tous les dossiers (sauf les dossiers bin et obj) de votre projet sur le serveur.

  • Ouvrez cmd dans le dossier de votre projet puis exécutez cette commande : dotnet run alors tous les avertissements et les erreurs s'affichent (si vous avez une erreur à propos de la commande ci-dessus qui ne reconnaît pas télécharger dot net core sdk de ce lien )

deuxième :

  • vous devez changer l'attribut hostingModel de OutOfProcess à inprocess dans le web.config et vous pouvez changer stdoutLogEnabled en true pour obtenir les erreurs de votre projet dans le dossier logs.
  • lisez les erreurs de vos projets et corrigez-les.

dans mon cas, le web.config est :

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\BMS.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="OutOfProcess" />
    </system.webServer>
  </location>
</configuration>

et je le change en :

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\BMS.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    </system.webServer>
  </location>
</configuration>

6voto

MRSessions Points 116

Il semble que chacun ait une réponse différente à cette question. J'ai également eu ce problème. Comme vous pouvez le constater, il y a beaucoup de choses différentes qui causent ce problème. Si vous ne trouvez aucune de ces solutions utiles ou si vous avez des problèmes à essayer de passer en revue toutes ces différentes solutions, vous pouvez essayer d'exécuter votre application à partir de la ligne de commande du dossier de publication.

Après la publication, si vous recevez cette erreur, allez dans votre dossier de publication, puis ouvrez une fenêtre de commande/terminal, après quoi tapez dotnet .\YourStartupProject.dll vous devriez recevoir une erreur d'exception, ce qui devrait faciliter la résolution du problème.

Par exemple, voici une erreur que j'ai reçue en essayant un nouvel environnement sans configurer un serveur SQL, et bien sûr, j'ai reçu cette erreur.

Application startup exception: System.Exception: Could not resolve a service of type 
'YourStartupProject.DataServices.DbContext.DbContext' for the parameter 
'context' of method 'Configure' on type 'YourStartupProject.Startup'. ---> 
System.ArgumentNullException: Value cannot be null.
Parameter name: connectionString

Une fois que vous avez résolu votre erreur, essayez à nouveau, rincez, répétez.

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