Es gibt eine Reihe von Beiträgen dazu und ich habe inzwischen viele Dinge ausprobiert. Aber ohne Erfolg. Ich selbst, ein Winforms-Entwickler, habe vor ein paar Tagen angefangen, an diesem Web-Material zu arbeiten, als mein Unternehmen Web-Initiativen ergreift.
Ich habe ein ASP.Net-Projekt und möchte es auf lokalem IIS hosten. In den Project properties -> Web
Einstellungen habe ich Use Local IIS Server
eine URL als ausgewählt und angegeben localhost/MyApp
. Ich habe versucht, über meinen Firefox-Browser darauf zuzugreifen, und habe die Fehlermeldung als erhaltenHTTP Error 503. The service is unavailable.
Zuvor habe ich viele andere Fehler bekommen und sie alle nacheinander behoben. Aber mit diesem geschlagen. Dies sind die Einstellungen, die ich in meinem Projekt habe
- Anwendungspool auf ASP.Net v4.0 Classic eingestellt
- Die App Pool-
Enable 32 bit Application
Eigenschaft ist wahr - App Pool wird gestartet
- Projekterstellungseigenschaft
Any CPU
für Zielframework festgelegt
Aber ich möchte ein seltsames Verhalten erwähnen. Das Folgende ist etwas, mit dem ich konfrontiert bin
- Anwendungspool wird gestartet
- Ich versuche, auf meine lokale Website zuzugreifen (indem ich die URL als gebe
localhost/MyApp
). - Ich erhalte den Fehler als
HTTP Error 503. The service is unavailable
- Anwendungspool wird gestoppt
Ich habe folgenden Link gesehen und es bereits versucht. Für das obige Verhalten habe ich hier erreicht . Laut diesem Link sollte der Computername nicht enthalten sein .
. Ich habe keine .
in meinem Computernamen, aber -
in. Auch mein Domainname enthält .
darin. Außerdem kann ich diese Einstellungen nicht ändern, da mein Office-Laptop und unsere TFS-Einstellungen an unsere Domänen- und Computernamen gebunden sind.
Kann mir jemand helfen zu verstehen, was passiert? Bitte führen Sie mich. Vielen Dank.
Bearbeiten
Ich habe folgenden Code in Global.asax
. Application_BeginRequest
Methode ist in derselben Datei leer.
protected override void Application_Start(object sender, EventArgs e)
{
base.Application_Start(sender, e);
String _path = String.Concat(System.AppDomain.CurrentDomain.RelativeSearchPath, ";",
System.Environment.GetEnvironmentVariable("PATH"));
System.Environment.SetEnvironmentVariable("PATH", _path, EnvironmentVariableTarget.Process);
MyAppLog.Initialize();
MyAppLog.WriteMessage("Application Started");
}
Aktualisieren
Gemäß den Vorschlägen in Kommentar kann ich die Website von Cassini aus betreiben.
Enable 32 bit Application
jedoch nur 32-Bit-DLLs?Any CPU
. Daher denke ich, dass gebrauchte DLLs kein Problem sein sollten. Bitte beachten Sie die Bearbeitung für Global.asax-Code. Vielen DankAntworten:
Ein möglicher Grund dafür ist, dass der Anwendungspool in IIS für die Ausführung unter einem benutzerdefinierten Konto konfiguriert ist und dieses Konto entweder nicht vorhanden ist oder ein falsches Kennwort angegeben wurde oder das Kennwort geändert wurde. Sehen Sie sich die erweiterten Eigenschaften des Anwendungspools in IIS an, für welches Konto er verwendet wird.
Das Ereignisprotokoll enthält möglicherweise auch weitere Informationen darüber, warum der Anwendungspool bei der ersten Anforderung sofort gestoppt wird.
quelle
Ok, ich habe eine andere Lösung für einen bestimmten Fall: Wenn Sie WINDOWS 10 verwenden und es kürzlich aktualisiert haben (mit dem Jubiläums-Update-Paket), müssen Sie die folgenden Schritte ausführen:
Windows Event Viewer
- drücken Sie Win + R und geben Sie: eineventvwr
, und drücken Sie dann ENTER.Windows Event Viewer
Klicken Sie auf der linken Seite aufWindows Logs
->Application
.IIS-W3SVC-WP
im mittleren Fenster finden.Control Panel
-> gehenProgram and Features
und je nachdem, welche DLL nicht geladen werden kann, müssen Sie ein anderes Modul reparieren:rewrite.dll
- Suchen Sie IIS URL Rewrite Module 2 und klicken Sie aufChange
->Repair
aspnetcore.dll
- finden Sie Microsoft .NET Core 1.0.0 - VS 2015 Tooling ... und klicken Sie aufChange
->Repair
.quelle
The Module DLL C:\Windows\System32\inetsrv\iis_ssi.dll failed to load. The data is the error.
Also habe ich Select Server Side Includes gemäß diesem VorschlagIn meiner Situation hat sich mein Anmeldekennwort geändert, während der Anwendungspool weiterhin das alte verwendet. Klicken Sie einfach auf die "Erweiterten Einstellungen" Ihres Anwendungspools und setzen Sie Ihre "Identität" zurück.
quelle
Ich hatte das gleiche Problem und debuggte es mithilfe der Ereignisprotokolle. Zuerst hieß es: "Die Beschreibung für die Ereignis-ID 5059 aus der Quelle Microsoft-Windows-WAS wurde nicht gefunden."
Ich habe dann WAS aktiviert, indem ich die Windows-Funktionen ein- und ausgeschaltet habe . Dann sah ich dies in eventvwr "Microsoft-Windows-DistributedCOM kann nicht gefunden werden".
Schließlich habe ich den App-Pool (der beim Zugriff auf die Website nicht mehr verfügbar war) aufgegeben und gelöscht und ihn so wie er ist erneut erstellt. Dies löste das Problem.
quelle
appcmd list site /xml | appcmd set site /[path='/'].applicationPool:YOURNEWPOOL /in
Wenn Sie mit Windows 10 hierher kommen und diese auf das Jubiläums-Update aktualisiert haben, überprüfen Sie bitte diesen Link. Es hat mir geholfen:
https://orcharddojo.net/blog/troubleshooter-iis-apppool-crashes-status-503-after-windows-10-anniversary-update
Falls der Link ausfällt: Wenn in Ihrem Ereignisprotokoll angezeigt wird, dass aspnetcore.dll, rewrite.dll (meistens, aber auch andere) nicht geladen werden konnte, müssen Sie die fehlenden Elemente reparieren.
Hier sind zwei spezifische Probleme, die wir bisher erlebt haben, und wie man sie behebt, aber Sie können auf völlig andere stoßen:
quelle
Meistens trat dies aufgrund der AppPool-Einstellung auf.
Überprüfen Sie Folgendes, um dies zu beheben
Die folgenden Bilder zeigen diese Einstellungen in IIS
quelle
Wenn Sie über McAfee HIPS verfügen und im Anwendungsprotokoll der Ereignisanzeige der folgende Fehler angezeigt wird:
Dann wurde das Problem in meinem Fall durch Folgendes behoben: https://kc.mcafee.com/corporate/index?page=content&id=KB72677&actp=LIST
Zitat von der Seite:
quelle
In meinem Fall habe ich die Ereignisprotokolle überprüft und festgestellt, dass der Fehler "Konfigurationsdatei kann nicht gelesen werden" beim Versuch, Konfigurationsdaten aus der Datei "\\? \", Zeilennummer "0" zu lesen, gefunden wurde. Das Datenfeld enthält den Fehlercode.
Der Fehlercode war 2307.
Ich habe alle Dateien in C: \ inetpub \ temp \ appPools gelöscht und das iis neu gestartet. Das Problem wurde behoben.
quelle
Ich hatte ein ähnliches Problem. Ich habe das Problem gelöst, indem ich meinen Benutzer zur Richtlinie "Als Stapeljob anmelden" unter "Lokale Sicherheitsrichtlinie"> "Lokale Richtlinien"> "Zuweisung von Benutzerrechten" hinzugefügt habe.
quelle
Beim ersten Hinzufügen des Dienstes und Erstellen des App-Pools dafür. Ich habe "iisreset" an der Eingabeaufforderung ausgeführt und es hat funktioniert.
quelle
Wenn Sie die Website im Visual Studio-Debugger ausführen können, können Sie möglicherweise sehen, wo in Ihrem Code der Anwendungspool abstürzt. In meinem Fall war es eine Funktion, die unbegrenzt oft rekursiv aufgerufen wurde, und die einen Stapelüberlauf verursachte. Hinweis: Das Windows-Ereignisprotokoll und die IIS-Protokolle waren zur Diagnose des Problems nicht hilfreich.
quelle
Ich hatte das gleiche Problem mit iis 8.5. Nachdem ich den eventViewer unter Windows-Protokolle -> Anwendungen durchsucht hatte, stellte ich fest, dass ein Berechtigungsfehler für die Datei machine.config des .net-Frameworks unter "C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319" vorliegt \ Config \ machine.config ". Durch die Erlaubnis für IIS_IUSRS wurde mein Problem behoben (Rechtsklick auf die Datei -> Eigenschaften -> Sicherheit -> Bearbeiten -> Hinzufügen -> IIS_IUSRS)
quelle
Bei diesem Fehler trat die Ursache auf, dass ich vor einiger Zeit das Benutzerkennwort geändert habe und der Fehler 503 erst nach einem Neustart des Anwendungspools angezeigt wurde.
Also habe ich das neue Passwort unter Anwendungspools / Erweiterte Einstellungen / Identität / [...] / Festlegen ... / Passwort / Passwort bestätigen behoben
quelle
Ich hatte ein ähnliches Problem. Alle meine App-Pools wurden angehalten, wenn eine Webanforderung an sie gerichtet wurde. Obwohl ich in der Ereignisanzeige den folgenden Fehler erhalten habe:
Was mir sagte, dass es Fehler in der application.config gab bei:
In meinem Szenario habe ich die web.config bei der Bereitstellung mit einem Element bearbeitet, das IIS eindeutig nicht mag. Die applicationHost.config hat die web.config abgekratzt und dieses fehlerhafte Element eingefügt und wurde erst aufgelöst, als ich es manuell entfernt habe
quelle
Zusätzlich zu den Schritten, die unter diesem Link aus Orhans Antwort beschrieben werden , müssen Sie möglicherweise das native Modul zusätzlich entfernen, indem Sie zu IIS-Manager> Serverstamm> Module> Native Module konfigurieren gehen. Wählen Sie MfeEngine und dann Entfernen.
quelle
Das Ändern des "Managed Pipeline Mode" von "Classic" in "Integrated" hat bei mir funktioniert. Sie kann unter Anwendungspools -> Grundeinstellungen geändert werden
quelle
Nur um diese
Anniversary Update
Probleme zu ergänzen (danke Microsoft), wenn die Datei, die Sie vermissen, istcgi.dll
, dh IhreEvent Viewer
hatDann, um dies zu beheben:
IIS Manager
Connections
Bedienfeld aus (normalerweise Ihren PC-Namen).Management
sollten Sie unten habenWeb Platform Installer
Products
cgi
dann<Enter>
IIS: CGI
und klicken Sie dannAdd
rechts und schließlichInstall
untenquelle