it-swarm.com.de

.NET Core-App kann nicht gestartet werden IIS aufgrund von ErrorCode = '0x80004005: 80008083

Ich habe eine .NET Core-Anwendung. Es läuft lokal mit VS2017 und Kestrel. Es läuft lokal unter IIS. Auf dem Server kann jedoch nicht mit einer 502.5 - Process Failure-Nachricht begonnen werden.

In den Ereignisprotokollen bekomme ich mehr Details:

Die Anwendung '...' mit dem physischen Stammverzeichnis 'C: ...\my-app-folder \' konnte den Prozess mit der Befehlszeile '"dotnet".\MyApp.dll', ErrorCode = '0x80004005: 80008083 nicht starten.

Vorherige Builds der Anwendung funktionieren auf demselben Server einwandfrei. Der einzige Unterschied besteht darin, dass sie mit VS2017RC (2 & 3) veröffentlicht wurden. Dies ist der erste Build mit dem vollständig veröffentlichten VS2017.

Was bedeutet ErrorCode = '0x80004005 : 80008083.?

Wie kann ich das beheben?

55
Keith

Da VS2017 RC mit der neuen Version des .NET Core SDK ( .NET Core 1.0.4 SDK 1.0.1 ) ausgeliefert wird, müssen Sie auch das Framework auf dem Server aktualisieren.

16
Set

Im Moment gibt es eine einfache Möglichkeit, den tatsächlichen Fehler zu ermitteln. Öffnen Sie den Konsolenabschnitt über den App-Dienst, und versuchen Sie dann, die dotnet-App auszuführen. Von dort können wir die vollständige Fehlermeldung und Trace-Informationen erhalten:  enter image description here

34
thangcao

Fehlercode: 0x80004005 bedeutet, dass eine Datei fehlt oder nicht darauf zugegriffen werden kann.

Subcode: 80008083 scheint ein Versionskonflikt zu sein.

Dieser Fehler bedeutet, dass eine andere Version von dotnet auf dem Server installiert werden muss.

22
Keith

Eine mögliche Lösung, die für mich funktioniert hat, ist, dass ich dies zu meinem Veröffentlichungsprofil in Visual Studio hinzugefügt habe:

<PublishWithAspNetCoreTargetManifest>False</PublishWithAspNetCoreTargetManifest>

Ich bin der Meinung, dass der Host die erforderlichen Dateien dazu verwenden wird, um die App auszuführen, anstatt sich auf Spezifikationen zu stützen, die in einem Zielmanifest festgelegt wurden. Dies könnte falsch sein (entweder die Laufzeit/das SDK auf dem Server oder Ihr lokales System steht in Konflikt mit diesen Spezifikationen).

16
Johan Herstad

Ich hatte eine neue .NET Core 2.0-Webanwendung für Azure App Service veröffentlicht und diesen Fehler festgestellt.

Treffen Sie die Site:

HTTP-Fehler 502.5 - Prozessfehler Häufige Ursachen für dieses Problem: Der Anwendungsprozess konnte nicht gestartet werden Der Anwendungsprozess wurde gestartet, aber dann angehalten. Die Anwendung Prozess wurde gestartet, konnte jedoch den konfigurierten Port nicht überwachen

Debugging: Verwenden von Azure Application Insights und des App Service - Erweiterte Tools (KUDU) beim Betrachten von Tools - Debug Console - Durchsuchen des LogFiles Ordner eventlog.xml hatte eine Protokollzeile:

Die Anwendung 'MACHINE/WEBROOT/APPHOST/xxxx' mit dem physischen Stammverzeichnis 'D:\home\site\wwwroot \' konnte den Prozess nicht mit der Befehlszeile 'dotnet.\WebApp.dll' starten, Fehlercode = '0x80004005c: 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>

Lösung

Diese Antwort: Löschen des wwwroot-Ordners in Azure und erneutes Veröffentlichen von VS, arbeitete für mich obwohl ich anfangs keine ältere Core 1.1-App hatte

Starten Sie die Azure Console in der App, löschen Sie den Inhalt des Ordners "wwwroot" und stellen Sie ihn erneut bereit.

RMDIR wwwroot /S /Q

Weitere Tests Das folgende war sehr hilfreich beim Testen und es funktioniert, wenn es identisch verfolgt wird, und weicht jedoch davon ab, dass Sie Fehler finden müssen .. _. https://docs.Microsoft.com/de -us/aspnet/core/Tutorials/publish-to-Azure-webapp-using-vs

13
lko

Für mich musste ich sicherstellen, dass ich die neueste .Net Core Runtime und das Windows Hosting Module installiert hatte, die alle unter https://www.Microsoft.com/net/download/windows verfügbar sind (neueste Versionen sollten verfügbar sein) immer hier verfügbar sein).

Insbesondere habe ich installiert:

Die vollständige .Net Framework 4.7.1-Laufzeitumgebung wird möglicherweise nicht benötigt, wenn Sie wirklich nur .Net Core-Apps auf Ihrem Server hosten, diese jedoch aus Sicherheitsgründen installiert haben.

0
deadlydog

Ich war mit demselben Problem konfrontiert und hatte nur Dotnet Cor 2 auf meinem Server installiert. Wenn Sie diesen Link installieren, können Sie Ihren Code in anderen Versionen von Dot Net Core ausführen. Vergessen Sie nicht, IIS neu zu starten . https://download.Microsoft.com/download/6/A/2/6A21C555-B042-46EA-BBB4-368AACCB3E25/DotNetCore.1.0.8_1.1.5-WindowsHosting.exe

Um diesen Fehler zu beheben, musste ich lediglich meinen Entwicklungscomputer neu starten und die Site neu kompilieren und erneut veröffentlichen. VS antwortete nicht richtig.

0
Roger D.

Für .net Core 2.0 

  1. Überprüfen Sie, ob das entsprechende DotNetCore.2.0.Y-WindowsHosting installiert ist. Wenn Ihr Projekt 2.1 ist, installieren Sie 2.1. entsprechend)
  2. Nach der Installation von Windows-Hosting ist ein Neustart des Computers erforderlich. 
  3. Open Powershell; CD Installationsverzeichnis; dotnet abcd.dll Dies ist ein Vorsteuerelement, das Sie nach der Installation von WindowsHosting überprüfen können ...
0

Ich hatte auch dieses Problem und dachte, ich würde meine Lösung posten ... Ich bin nicht sicher, ob dies beabsichtigt ist oder nicht, aber ich glaube nicht, dass Dotnet Core 2 Space-Zeichen in Ihrem Projektnamen unterstützt.

Ich habe ein Projekt mit dem Namen "Mikes App" erstellt und veröffentlicht, und wenn ich versuche, die Website mit IIS auszuführen, würde ich diesen Fehler erhalten (.NET Core-App kann aufgrund von ErrorCode = '0x80004005' nicht in IIS gestartet werden ). Als ich stdoutLogs über die Datei web.config aktiviert habe, habe ich den Fehler gefunden:

Es wurde keine ausführbare Datei gefunden, die den Befehl "dotnet -.\Mikes" enthält. 

Was ich seltsam fand, weil die Datei web.config den DLL-Pfad unter den Argumenten ".\Mikes App.dll" korrekt angezeigt hat.

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

Ich habe ein neues Dotnet-Core-2-Projekt in Visual Studio erstellt und stattdessen "Mikes-App" genannt, es erneut veröffentlicht und das Verzeichnis auf meiner IIS - Site aktualisiert. 

Dann hat die Seite gut funktioniert!

0
Mike

Ich arbeite mit IIS und hatte den Fehler 0x80004005: 0, den ich in der Ereignisanzeige -> Anwendungsprotokolle gefunden habe. Es wurde verursacht, weil mein Anwendungspool keinen Zugriff auf den Speicherort des Websiteordners hatte.

Ich habe das Problem gelöst, indem ich die Identität des Anwendungspools in eine Identität mit Zugriff auf den Ordner geändert habe.

0
Jordan