Aspnetcore: Problem beim Starten der Anwendung in Bearbeitung

Erstellt am 25. Dez. 2018  ·  3Kommentare  ·  Quelle: dotnet/aspnetcore

Hallo!
Ich versuche, eine Web-App mit einem Inprozess-Hosting-Modell zu hosten. Und...
Anwendung kann nicht gestartet werden.
IIS-Antworten mit 500.30.
ANCM-Protokolle enthalten dies.
Wenn ich HostingModel auf OutOfProcess umstelle – ist alles in Ordnung.

Meine web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath=".\Dodo.ClientSite.exe" arguments="" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" hostingModel="InProcess">

         <handlerSettings>
                  <handlerSetting name="debugFile" value=".\aspnetcore-debug.log" />
                  <handlerSetting name="debugLevel" value="FILE,TRACE" />
              </handlerSettings>
      </aspNetCore>
   </system.webServer>
</configuration>

Protokolle

```
[aspnetcorev2.dll] ASPNET_CORE_GLOBAL_MODULE::OnGlobalConfigurationChange 'MACHINE/WEBROOT/APPHOST/RU-DEV-GS-GSITE.EXT.DEV.DODOIS.COM'
[aspnetcorev2.dll] Stoppen der Anwendung '/LM/W3SVC/340/ROOT'
[aspnetcorev2_inprocess.dll] Stoppen des Dateiüberwachungs-Threads
[aspnetcorev2.dll] ASPNET_CORE_GLOBAL_MODULE::OnGlobalStopListening
[aspnetcorev2.dll] ASPNET_CORE_GLOBAL_MODULE::Beenden
[aspnetcorev2.dll] Initialisieren von Protokollen für 'C:\Programme\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll'. Prozess-ID: 9476.. Dateiversion: 12.2.18316.0. Beschreibung: IIS ASP.NET Core-Modul V2. Commit: ce8cf65589734f82b0536c543aba5bd60d0a5a98.
[aspnetcorev2.dll] Hostfxr-Parameter für Anwendung auflösen: '.\Dodo.ClientSite.exe' Argumente: '' Pfad: 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\'
[aspnetcorev2.dll] Bekannter dotnet.exe-Speicherort: ''
[aspnetcorev2.dll] Prozesspfad '.\Dodo.ClientSite.exe' ist kein Dotnet, die Anwendung wird als eigenständig oder portabel mit Bootstrapper behandelt
[aspnetcorev2.dll] Überprüfen der application.dll unter 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com.\Dodo.ClientSite.dll'
[aspnetcorev2.dll] Überprüfung von hostfxr.dll unter 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com.\hostfxr.dll'
[aspnetcorev2.dll] hostfxr.dll hat die App lokal unter 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com.\hostfxr.dll' gefunden und behandelt die Anwendung mit dem Launcher als portabel
[aspnetcorev2.dll] Absoluten Pfad zu dotnet.exe von 'dotnet' auflösen
[aspnetcorev2.dll] Aufruf von where.exe, um dotnet.exe zu finden
[aspnetcorev2.dll] where.exe-Aufruf zurückgegeben: 'C:\Program Filesdotnetdotnet.exe
C:\Programme (x86)dotnetdotnet.exe
'
[aspnetcorev2.dll] Aktueller Prozess-Bitness-Typ als isX64=1 . erkannt
[aspnetcorev2.dll] Verarbeitung des Eintrags 'C:\Program Filesdotnetdotnet.exe'
[aspnetcorev2.dll] Binärtyp 6
[aspnetcorev2.dll] Gefunden dotnet.exe über den Aufruf von where.exe unter 'C:\Program Filesdotnetdotnet.exe'
[aspnetcorev2.dll] Auflösen des absoluten Pfads zu hostfxr.dll von 'C:\Program Filesdotnetdotnet.exe'
[aspnetcorev2.dll] hostfxr.dll befindet sich unter 'C:\Program Filesdotnet\host\fxr\2.2.0\hostfxr.dll'
[aspnetcorev2.dll] Geparste hostfxr-Optionen: dotnet-Speicherort: 'C:\Program Filesdotnetdotnet.exe' hostfxr-Pfad: 'C:\Program Filesdotnet\host\fxr\2.2.0\hostfxr.dll' Argumente:
[aspnetcorev2.dll] Argument[0] = 'C:\Programmedotnetdotnet.exe'
[aspnetcorev2.dll] Argument[1] = 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com.\Dodo.ClientSite.dll'
[aspnetcorev2.dll] c:\b\w\e37dd45d8cd1eaf4\src\iisintegration\src\aspnetcoremodulev2\commonlib\fileoutputmanager. cpp:142 Operation fehlgeschlagen mit LastError: 32 HR: 0x80070020
[aspnetcorev2.dll] Lade-Request-Handler: 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\aspnetcorev2_inprocess.dll'
[aspnetcorev2.dll] Handler-Anwendung erstellen
[aspnetcorev2_inprocess.dll] Initialisieren von Protokollen für 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\aspnetcorev2_inprocess.dll'. Prozess-ID: 9476.. Dateiversion: 12.2.18316.0. Beschreibung: IIS ASP.NET Core Module V2-Anforderungshandler. Commit: ce8cf65589734f82b0536c543aba5bd60d0a5a98.
[aspnetcorev2_inprocess.dll] Warten auf Initialisierung
[aspnetcorev2_inprocess.dll] Starten des prozessinternen Worker-Threads
[aspnetcorev2_inprocess.dll] Hostfxr-Parameter für Anwendung auflösen: '.\Dodo.ClientSite.exe' Argumente: '' Pfad: 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\'
[aspnetcorev2_inprocess.dll] Bekannter Speicherort von dotnet.exe: 'C:\Programmedotnetdotnet.exe'
[aspnetcorev2_inprocess.dll] Der Prozesspfad '.\Dodo.ClientSite.exe' ist kein Dotnet und behandelt die Anwendung als eigenständig oder portabel mit Bootstrapper
[aspnetcorev2_inprocess.dll] Überprüfen der application.dll unter 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com.\Dodo.ClientSite.dll'
[aspnetcorev2_inprocess.dll] Überprüfung von hostfxr.dll unter 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com.\hostfxr.dll'
[aspnetcorev2_inprocess.dll] hostfxr.dll hat die App lokal unter 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com.\hostfxr.dll' gefunden und behandelt die Anwendung mit dem Launcher als portabel
[aspnetcorev2_inprocess.dll] Auflösen des absoluten Pfads zu hostfxr.dll von 'C:\Program Filesdotnetdotnet.exe'
[aspnetcorev2_inprocess.dll] hostfxr.dll befindet sich unter 'C:\Program Filesdotnet\host\fxr\2.2.0\hostfxr.dll'
[aspnetcorev2_inprocess.dll] Geparste hostfxr-Optionen: dotnet-Speicherort: 'C:\Program Filesdotnetdotnet.exe' hostfxr-Pfad: 'C:\Program Filesdotnet\host\fxr\2.2.0\hostfxr.dll' Argumente:
[aspnetcorev2_inprocess.dll] Argument[0] = 'C:\Programmedotnetdotnet.exe'
[aspnetcorev2_inprocess.dll] Argument[1] = 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com.\Dodo.ClientSite.dll'
[aspnetcorev2_inprocess.dll] Managed hat eine Ausnahme ausgelöst -1073741819
[aspnetcorev2_inprocess.dll] Starten der Shutdown-Sequenz 1
[aspnetcorev2_inprocess.dll] Clr-Thread-Wartezeit beendet: clrThreadExited: 1
[aspnetcorev2_inprocess.dll] c:\b\w\e37dd45d8cd1eaf4\src\iisintegration\src\aspnetcoremodulev2\commonlib\fileoutputmanager. cpp:142 Operation fehlgeschlagen mit LastError: 32 HR: 0x80070020
[aspnetcorev2_inprocess.dll] Ereignisprotokoll: 'Anwendung '/LM/W3SVC/340/ROOT' mit physischem Stammverzeichnis 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\' traf unerwartete verwaltete Ausnahme , Ausnahmecode = '0xc0000005'. Weitere Informationen finden Sie in den stderr-Protokollen.'
Ereignisprotokollnachricht beenden.
[aspnetcorev2_inprocess.dll] Beenden des prozessinternen Worker-Threads
[aspnetcorev2_inprocess.dll] Stoppen von CLR
[aspnetcorev2_inprocess.dll] Ereignisprotokoll: 'Anwendung '/LM/W3SVC/340/ROOT' mit physischem Stammverzeichnis 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\' konnte clr nicht laden und verwaltete Anwendung. CLR-Worker-Thread vorzeitig beendet'
Ereignisprotokollnachricht beenden.
[aspnetcorev2_inprocess.dll] Ausnahme 'InvalidOperationException' in c:\b\w\e37dd45d8cd1eaf4\src\iisintegration\src\aspnetcoremodulev2\inprocessrequesthandler\inprocessapplication abgefangen. cpp: 350
[aspnetcorev2_inprocess.dll] Fehlgeschlagenes HRESULT zurückgegeben: 0x8007023e at c:\b\w\e37dd45d8cd1eaf4\src\iisintegration\src\aspnetcoremodulev2\inprocessrequesthandler\dllmain. cpp: 120
[aspnetcorev2_inprocess.dll] Starten der App_Offline-Überwachung in der Anwendung 'E:\sites\ru-dev-gs-gsite.ext.dev.dodois.com\'
[aspnetcorev2_inprocess.dll] Starten des Dateiüberwachungsthreads
[aspnetcorev2.dll] ASPNET_CORE_GLOBAL_MODULE::OnGlobalConfigurationChange 'MACHINE/WEBROOT/APPHOST/RU-DEV-GS-GSITE.EXT.DEV.DODOIS.COM'
[aspnetcorev2.dll] Stoppen der Anwendung '/LM/W3SVC/340/ROOT'
[aspnetcorev2_inprocess.dll] Stoppen des Dateiüberwachungs-Threads
[aspnetcorev2.dll] ASPNET_CORE_GLOBAL_MODULE::OnGlobalStopListening
[aspnetcorev2.dll] ASPNET_CORE_GLOBAL_MODULE::Beenden
````

area-servers servers-iis

Hilfreichster Kommentar

Ihr Program.Main löst eine Ausnahme aus. Es liegt wahrscheinlich am CurrentDirectory-Problem: #4206. Hier ist unsere derzeit empfohlene Problemumgehung: https://github.com/aspnet/Docs/blob/master/aspnetcore/host-and-deploy/aspnet-core-module/samples_snapshot/2.x/CurrentDirectoryHelpers.cs. Dies wird in einem Patch behoben.

Ich habe Probleme beim Anwenden des vorgeschlagenen Fixes und Beheben des Problems, von dem ich nicht weiß, ob es in der aktuellen Version .Net Core 2.2 behoben werden sollte, da ich immer noch den gleichen Fehler erhalte - IIS-Antworten mit 500.30 - beim Ausführen von InProcess. Beim Aktivieren der Protokolle konnte ich sehen, dass das Problem mit dem gleichen Problem zusammenhängt, da das zurückgegebene Verzeichnis nicht das richtige Verzeichnis ist. Stattdessen wurde der Pfad zurückgegeben, von dem aus der IIS-Dienst im System ausgeführt wird. Um den Fix anzuwenden, habe ich die CurrentDirectoryHelper.cs in mein Projekt kopiert und aus der Program.cs aufgerufen, bevor SetBasePath festgelegt wurde.

logger.LogWarning($"Applying Patch to fix Current Directory issue. Current Directory: {Environment.CurrentDirectory}"); //TODO: the line below can be removed when the bug with InProcess method is fixed (more details, follow the class definition and read the comments) CurrentDirectoryHelpers.SetCurrentDirectory(); logger.LogWarning($"Fix applied. Current Directory now is: {Environment.CurrentDirectory}");
Das Anwenden des Fixes als solches führt immer noch zum gleichen Ergebnis.
Die Anwendung startet gut, wenn sie als OutOfProcess und unter IIS Express ausgeführt wird

Kann mir bitte jemand dabei helfen?

Alle 3 Kommentare

Ihr Program.Main löst eine Ausnahme aus. Es liegt wahrscheinlich am CurrentDirectory-Problem: #4206. Hier ist unsere derzeit empfohlene Problemumgehung: https://github.com/aspnet/Docs/blob/master/aspnetcore/host-and-deploy/aspnet-core-module/samples_snapshot/2.x/CurrentDirectoryHelpers.cs. Dies wird in einem Patch behoben.

Ich gehe davon aus, dass die Problemumgehung Ihr Problem gelöst hat. Ansonsten gerne wieder öffnen.

Ihr Program.Main löst eine Ausnahme aus. Es liegt wahrscheinlich am CurrentDirectory-Problem: #4206. Hier ist unsere derzeit empfohlene Problemumgehung: https://github.com/aspnet/Docs/blob/master/aspnetcore/host-and-deploy/aspnet-core-module/samples_snapshot/2.x/CurrentDirectoryHelpers.cs. Dies wird in einem Patch behoben.

Ich habe Probleme beim Anwenden des vorgeschlagenen Fixes und Beheben des Problems, von dem ich nicht weiß, ob es in der aktuellen Version .Net Core 2.2 behoben werden sollte, da ich immer noch den gleichen Fehler erhalte - IIS-Antworten mit 500.30 - beim Ausführen von InProcess. Beim Aktivieren der Protokolle konnte ich sehen, dass das Problem mit dem gleichen Problem zusammenhängt, da das zurückgegebene Verzeichnis nicht das richtige Verzeichnis ist. Stattdessen wurde der Pfad zurückgegeben, von dem aus der IIS-Dienst im System ausgeführt wird. Um den Fix anzuwenden, habe ich die CurrentDirectoryHelper.cs in mein Projekt kopiert und aus der Program.cs aufgerufen, bevor SetBasePath festgelegt wurde.

logger.LogWarning($"Applying Patch to fix Current Directory issue. Current Directory: {Environment.CurrentDirectory}"); //TODO: the line below can be removed when the bug with InProcess method is fixed (more details, follow the class definition and read the comments) CurrentDirectoryHelpers.SetCurrentDirectory(); logger.LogWarning($"Fix applied. Current Directory now is: {Environment.CurrentDirectory}");
Das Anwenden des Fixes als solches führt immer noch zum gleichen Ergebnis.
Die Anwendung startet gut, wenn sie als OutOfProcess und unter IIS Express ausgeführt wird

Kann mir bitte jemand dabei helfen?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen