web-dev-qa-db-fra.com

Impossible pour l'app. NET Core de démarrer IIS en raison de ErrorCode = '0x80004005: 80008083

J'ai une application .NET Core. Il fonctionne localement avec VS2017 et Kestrel. Il fonctionne localement sous IIS. Cependant, sur le serveur, il ne parvient pas à démarrer avec un message 502.5 - Process Failure.

Dans les journaux d'événements, je reçois plus de détails:

L'application '...' avec la racine physique 'C: ...\my-app-folder \' n'a pas pu démarrer le processus en ligne de commande '"dotnet".\MyApp.dll', ErrorCode = '0x80004005: 80008083.

Les versions précédentes de l'application fonctionnent correctement sur le même serveur. La seule différence est qu'elles ont été publiées avec VS2017RC (2 et 3). Il s'agit de la première version avec la version complète VS2017.

Que signifie ErrorCode = '0x80004005 : 80008083.?

Comment je le répare?

55
Keith

Comme VS2017 RC est livré avec la nouvelle version du SDK .NET Core ( .NET Core 1.0.4 SDK 1.0.1 ), vous devez également mettre à jour la structure sur le serveur.

16
Set

Pour l'instant, il existe un moyen simple de voir quelle est l'erreur réelle . Ouvrez la section Console du service d'application, puis essayez d'exécuter l'application dotnet. De là, nous pouvons obtenir le message d'erreur complet et les informations de trace: enter image description here

34
thangcao

Code d'erreur: 0x80004005 signifie qu'un fichier est manquant ou inaccessible.

Sous-code: 80008083 semble être un conflit de version.

Cette erreur signifie qu'une version différente de dotnet doit être installée sur le serveur.

22
Keith

Une solution possible qui a fonctionné pour moi est que j'ai ajouté ceci à mon profil de publication dans Visual Studio:

<PublishWithAspNetCoreTargetManifest>False</PublishWithAspNetCoreTargetManifest>

Je pense que cela incitera l'hôte à utiliser les fichiers requis pour exécuter l'application au lieu de s'appuyer sur des spécifications définies dans un manifeste cible qui pourrait être erroné (le runtime/sdk sur le serveur ou votre serveur local est en conflit avec ces spécifications).

16
Johan Herstad

J'avais publié une nouvelle application Web .NET Core 2.0 sur Azure App Service et j'avais atteint cette erreur.

Frapper le site:

Erreur HTTP 502.5 - Échec du processus Causes courantes de ce problème: Le processus d'application n'a pas pu démarrer Le processus de candidature a démarré mais s'est ensuite arrêté L'application le processus a démarré mais n'a pas réussi à écouter sur le port configuré

Débogage: Utilisation d'Azure Application Insights et de l'App Service - Outils avancés _ (KUDU) en regardant le Outils - Console de débogage - Parcourir le LogFiles folder eventlog.xml avait une ligne de journal:

L'application 'MACHINE/WEBROOT/APPHOST/xxxx' avec la racine physique 'D:\home\site\wwwroot \' n'a pas pu démarrer le processus avec la ligne de commande 'dotnet.\WebApp.dll', ErrorCode = '0x80004005: 8000808c.

<Provider Name="IIS AspNetCore Module"/>
<EventID>1000</EventID>
<Level>1</Level>
<Task>0</Task>
<EventData>
<Data>Application 'MACHINE/WEBROOT/APPHOST/xxxx' with physical root 'D:\home\site\wwwroot\' failed to start process with commandline 'dotnet .\WebApp.dll', ErrorCode = '0x80004005 : 8000808c.</Data>
</EventData>
</Event>

Solution

Cette réponse: Supprimer le dossier wwwroot dans Azure et publier à nouveau à partir de VS, a fonctionné pour moi bien que je ne dispose pas initialement d'une application héritée Core 1.1

Lancez la console Azure dans l'application et supprimez le contenu du dossier wwwroot, puis redéployez-le.

RMDIR wwwroot /S /Q

Autres tests.__ Il a été très utile de suivre cette procédure, qui fonctionne de la même manière et qui fonctionne de la même façon, mais vous devez trouver des erreurs . https://docs.Microsoft.com/en -us/aspnet/core/didacticiels/publier sur Azure-webapp-using-vs

13
lko

Pour moi, je devais m'assurer que j'avais les derniers modules .Net Core Runtime et Windows Hosting installés, lesquels sont disponibles à partir de https://www.Microsoft.com/net/download/windows (les versions les plus récentes doivent toujours être disponible ici).

Plus précisément, j'ai installé:

L’exécution complète de .NET Framework 4.7.1 n’est peut-être pas nécessaire si vous ne faites que des applications Host .Net Core sur votre serveur, mais que je l’ai installée de manière sécurisée.

0
deadlydog

J'ai rencontré le même problème et je n'avais que dotnet cor 2 installé sur mon serveur. Ainsi, en installant ce lien, vous pourrez exécuter votre code dans d'autres versions de dot net core. n'oubliez pas de redémarrer IIS . https://download.Microsoft.com/download/6/A/2/6A21C555-B042-46EA-BBB4-368AACCB3E25/DotNetCore.1.0.8_1.1.5-WindowsHostingHostingHosting.exe

0

Tout ce que j'avais à faire pour corriger cette erreur était de redémarrer mon ordinateur de développement, de recompiler et de republier le site. VS ne répondait pas correctement.

0
Roger D.

Pour .net core 2.0 

  1. Vérifiez que DotNetCore.2.0.Y-WindowsHosting est bien installé. Si votre projet est 2.1, installez-le 2.1. en conséquence)
  2. Un redémarrage de l'ordinateur est "requis" après l'installation de l'hébergement Windows. 
  3. Powershell ouvert; cd répertoire_installation; dotnet abcd.dll Ceci est un contrôle préalable que vous pouvez vérifier après avoir installé WindowsHosting ...
0

J'ai eu ce problème aussi et j'ai pensé poster ma solution ... Je ne sais pas si c'est prévu ou non, mais je ne pense pas que le noyau 2 de Dotnet prenne en charge les caractères espace du nom de votre projet.

J'ai créé et publié un projet appelé "Mikes App". Lorsque j'essayais de faire fonctionner le site avec IIS, cette erreur m'échappait (l'application .NET Core ne pouvait pas démarrer dans IIS en raison de ErrorCode = '0x80004005'. ). Lorsque j'ai activé stdoutLogs dans le fichier web.config, j'ai trouvé l'erreur:

Aucun fichier exécutable ne correspond à la commande "dotnet -.\Mikes" 

Ce que j'ai trouvé étrange parce que le fichier web.config montrait correctement le chemin d'accès à la DLL sous des arguments qui étaient ".\Mikes App.dll"

<aspNetCore processPath="dotnet" arguments=".\Mikes App.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />

J'ai créé un nouveau projet DOTNET Core 2 dans Visual Studio et je l'ai nommé "Mikes-App", je l'ai republié et mis à jour le répertoire sur mon site IIS. 

Ensuite, le site a bien fonctionné!

0
Mike

J'exécute sur IIS et j'avais l'erreur 0x80004005: 0, que j'ai trouvée dans l'Observateur d'événements -> Journaux d'applications. Cela était dû au fait que mon pool d'applications n'avait pas accès à l'emplacement du dossier du site Web.

Je l'ai résolu en modifiant l'identité du pool d'applications en une permettant d'accéder au dossier.

0
Jordan