Ich versuche, die standardmäßige ASP.NET Core-Webanwendung (Webanwendungsvorlage in VS 2015) über IIS auszuführen.
Ich habe die Anweisungen aus der Dokumentation hier befolgt, z. B. um einen "No Managed Code" einzurichten 'Anwendungspool und zeigt den physischen Pfad am Speicherort der web.config
-Datei an.
Wenn ich versuche, zum Stamm der Website zu navigieren, http://localhost
Ich erhalte diesen Fehler:
HTTP-Fehler 502.3 - Fehlerhaftes Gateway Beim Versuch, die Anforderung zu leiten, ist ein Verbindungsfehler aufgetreten.
Wahrscheinlichste Ursache: Die CGI-Anwendung hat keinen gültigen Satz von zurückgegeben HTTP-Fehler Ein Server, der als Proxy oder Gateway fungierte, konnte dies nicht Verarbeite die Anfrage aufgrund eines Fehlers in einem Eltern-Gateway.
In der Ereignisanzeige wird Folgendes angezeigt:
Fehler beim Starten des Prozesses mit der Befehlszeile 'dotnet ./bin/Debug/netcoreapp1.0/WebApplication2.dll', Fehlercode = '0x80004005'.
Dieser Fehler zeigt, dass ich die Platzhalter ersetzt habe
%Vor% in web.config
mit den erforderlichen Werten
( update : Diese Platzhalter werden beim Veröffentlichen ersetzt)
Gemäß den Anweisungen zur Fehlerbehebung habe ich .NET Core Windows Server Hosting Bundle
installiert und den Server neu gestartet.
Ausführen von der Befehlszeile über dotnet
funktioniert
Ich frage mich, was ich jetzt versuchen soll.
Ok, ich habe mein Problem herausgefunden. Ich zeige den physischen Pfad in IIS auf das Stammverzeichnis des unveröffentlichten Visual Studio-Projekts. Dies funktioniert in früheren Versionen von .net (also nicht in Dotnet-Kern-Aspnet-Projekten), funktioniert aber nicht.
Wenn Sie wirklich möchten, dass dies funktioniert, müssen Sie Ihre App in einem temporären Ordner veröffentlichen und die Microsoft.AspNetCore.*
-Binärdateien zusammen mit den Ordnern bin\Debug\
und refs
in den Ordner runtimes
kopieren
Dies ist ein allgemeiner Fehler, wenn IIS die angegebenen .NET Core-Komponenten nicht finden kann und nicht weiß, wohin Anforderungen weitergeleitet werden sollen. Stellen Sie neben dem offiziellen Veröffentlichungsleitfaden für IIS sicher, dass Sie Folgendes haben:
project.json
web.config
(vorzugsweise mit dem Tool publish-iis
), und die Schlüsselwerte <aspNetCore>
wurden durch lokale Werte ersetzt ( Quelle mit Beispielen ) Ich bin darauf gestoßen, während ich eine Core 1.0.0 (final) -Website auf einem neuen Windows 2008 Server eingerichtet habe. Es stellte sich heraus, dass ich einige der Installer von meinem dev-Rechner mit neueren Versionen verwechselt hatte und Bibliothekenversionen nicht übereinstimmten (RC2 vs final). Neuinstallation des Server-Hosting-Pakets behob das Problem.
Der Schlüssel zur Fehlerbehebung bestand darin, in die Konsole zu gelangen und die dotnet
-Befehle (und resultierende Fehlermeldungen) zu verwenden, bis ich meine Site von der Konsole aus ausführen konnte, da die IIS-Fehlerseite im Browser nutzlos war. Ich habe auch ein paar Vorteile in einigen Einträgen in den Systemfehlerprotokollen gefunden, aber nicht viel.
Tags und Links asp.net-core .net-core-rc2