Dienstag, 8. Oktober 2024

ASP.NET Core Hosting - Anwendungspool stürzt ab sobald man 32-bit aktiviert

In einer älteren Anwendung (klassisches Asp.Net 4.0) verwenden wir eine Drittkomponente, welche nur 32-Bit unterstützt. Nach der Installation von .NET Core 2.2 stürzte der Anwendungspool der alten Anwendung jeweils ab mit Meldungen wie z.B.

Die Modul-DLL "C:\Program Files\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll" konnte aufgrund eines Konfigurationsproblems nicht geladen werden. Die aktuelle Konfiguration unterstützt nur das Laden von Images, die für eine Architektur mit x86 Prozessoren erstellt wurden. Das Datenfeld enthält die Fehlernummer. Weitere Informationen zu diesem Problem sowie zur Behandlung dieser Art von Fehlern aufgrund nicht übereinstimmender Prozessorarchitekturen finden Sie unter "http://go.microsoft.com/fwlink/?LinkId=29349".

Fehler im Listenerkanal für Protokoll "http" im Arbeitsprozess "10092" für den Anwendungspool "XYZ". Das Datenfeld enthält die Fehlernummer. 

Fehler im Listenerkanal für Protokoll "http" im Arbeitsprozess "9344" für den Anwendungspool "XYZ". Das Datenfeld enthält die Fehlernummer. 

Fehler im Listenerkanal für Protokoll "http" im Arbeitsprozess "9612" für den Anwendungspool "XYZ". Das Datenfeld enthält die Fehlernummer. 

Fehler im Listenerkanal für Protokoll "http" im Arbeitsprozess "9660" für den Anwendungspool "XYZ". Das Datenfeld enthält die Fehlernummer. 

Fehler im Listenerkanal für Protokoll "http" im Arbeitsprozess "6900" für den Anwendungspool "XYZ". Das Datenfeld enthält die Fehlernummer. 

Der Anwendungspool "XYZ" wird aufgrund einer Serie von Fehlern bei den Prozessen für diesen Anwendungspool automatisch angehalten

 

Nach längere Recherche fand ich heraus, das im IIS unter "Module" ein fixer Pfad auf die 64bit-Variante der "aspnetcorev2.dll" angegeben wurde:


Über den IIS direkt kann man das Problem nicht lösen, stattdessen geht dies über ändern der Konfigurationsdatei "applicationHost.config" im Verzeichnis "%windir%\system32\inetsrv\config\".

Diese habe ich mit dem Editor geöffnet und folgende Zeile angepasst:

ALT:
<add name="AspNetCoreModuleV2" image="C:\Program Files\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll" />

NEU:
<add name="AspNetCoreModuleV2" image="%ProgramFiles%\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll" />


Anschließend den IIS neu starten und schon geht alles wieder wie zuvor :-)