Ich verwendete eckige .net Kern 2.2 Schablone, um Anwendung zu errichten. In localhost, das gut funktioniert, wenn ich zu IIS bewirte. Im, das IIS 10 verwendet, um die Anwendung zu bewirten.
Error,
HTTP-Fehler 500.21 - Interner Server-Fehlerbehandler "aspNetCore" hat ein fehlerhaftes Modul "AspNetCoreModuleV2" in seiner Modulliste
Installieren Sie das .Net Core 2.2-Laufzeitpaket auf dem Hosting-Computer.
Oder
Veröffentlichen Sie Ihr Projekt als eigenständig.
AKTUALISIEREN
ORIGINAL
Ich habe dies funktioniert, indem ich den folgenden Codeblock zum .csproj
für die Webanwendung.
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<LangVersion>latest</LangVersion>
<AspNetCoreModuleName>AspNetCoreModule</AspNetCoreModuleName>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
</PropertyGroup>
Natürlich möchten Sie die netcoreapp
-Version aktualisieren, wenn Sie fortfahren. So konnte ich die Dinge zum Laufen bringen. Ich bin mir nicht sicher, warum es nicht ausreicht, das Hosting-Paket für 2.2 zu installieren.
Durch das Entfernen von V2 von modules = "AspNetCoreModuleV2" hat es für mich funktioniert. Beachten Sie, dass mein Problem mit dem Ausführen einer .net-Core-Web-API von Visual Studio zusammenhängt. IE Express schlug mit einem Code 500 fehl und nach Untersuchung des Fehlerprotokolls mit der Beschreibung "Handler 'aspNetCore' hat ein fehlerhaftes Modul." Wurde durch Ersetzen durch das Folgende behoben.
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
Ich hatte dieses Problem erst vor einer Sekunde. Ich habe meinen Codeteil in web.config durch diesen ersetzt.
ALTES TEIL:
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2"
resourceType="Unspecified" />
</handlers>
NEUER TEIL:
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule"
resourceType="Unspecified" />
</handlers>
Für Windows-Hosting
Installieren Sie das Hosting-Paket . Beachten Sie, dass das SDK normalerweise die Laufzeit enthält, das SDK-Installationsprogramm scheint jedoch die Laufzeit nicht korrekt auf dem Server zu registrieren.
Problemumgehung (nicht empfohlen): Ändern Sie AspNetCoreModuleV2
in AspNetCoreModule
in web.config.
Für Azure-Hosting
Installieren Sie die .NET Core 2.2-Laufzeiterweiterung, indem Sie Erweiterungen auswählen und anschließend .NET Core 2.2. Runtime installieren.
Es gibt einige Möglichkeiten, wie Sie das beheben können:
applicationhost.config
-Datei. Sie sollten den folgenden Eintrag an den entsprechenden Stellen haben:<configuration>
<system.webServer>
...
<globalModules>
...
<add name="AspNetCoreModuleV2" image="%IIS_BIN%\Asp.Net Core Module\V2\aspnetcorev2.dll" />
</globalModules>
</system.webServer>
...
<location path="" overrideMode="Allow">
<system.webServer>
<modules>
...
<add name="AspNetCoreModuleV2" lockItem="true" />
</modules>
</system.webServer>
</location>
</configuration>
Stellen Sie einfach sicher, dass Sie tatsächlich die Datei für aspnetcorev2.dll
in Ihrem Bin-Verzeichnis IIS haben.
Ich hatte das gleiche Problem und es funktionierte für mich, die Installation des Hosting-Bundles zu reparieren (Systemsteuerung -> Programme und Funktionen; klicken Sie mit der rechten Maustaste auf die Hosting-Bundle-Installation, klicken Sie auf "Ändern" und wählen Sie im Fenster "Reparieren" das taucht auf.
Folgendes hat bei mir funktioniert:
<add name="AspNetCoreModuleV2" image="%ProgramFiles%\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll" />