HTTP Error 503. Dieser Dienst ist nicht verfügbar. Der App-Pool stoppt beim Zugriff auf die Website

167

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 -> WebEinstellungen habe ich Use Local IIS Servereine 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

  1. Anwendungspool auf ASP.Net v4.0 Classic eingestellt
  2. Die App Pool- Enable 32 bit ApplicationEigenschaft ist wahr
  3. App Pool wird gestartet
  4. Projekterstellungseigenschaft Any CPUfür Zielframework festgelegt

Aber ich möchte ein seltsames Verhalten erwähnen. Das Folgende ist etwas, mit dem ich konfrontiert bin

  1. Anwendungspool wird gestartet
  2. Ich versuche, auf meine lokale Website zuzugreifen (indem ich die URL als gebe localhost/MyApp).
  3. Ich erhalte den Fehler als HTTP Error 503. The service is unavailable
  4. 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_BeginRequestMethode 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.

Sandig
quelle
Haben Sie Code in Ihrer Global.asax, der beim Start der Anwendung ausgeführt wird? Etwas, das in einer Schleife stecken bleiben könnte? Sie haben aktiviert, verwenden Enable 32 bit Applicationjedoch nur 32-Bit-DLLs?
CodingIntrigue
Was passiert, wenn Sie es in Cassini ausführen?
Simon Whitehead
@RGraham: Ich habe Project Build-Eigenschaft auf gesetzt Any CPU. Daher denke ich, dass gebrauchte DLLs kein Problem sein sollten. Bitte beachten Sie die Bearbeitung für Global.asax-Code. Vielen Dank
Sandy
@ SimonWhitehead: Keine Ahnung, was Cassini ist. Ich habe es jetzt von cassinidev.codeplex.com heruntergeladen . Ich kann einige DLLs und Exe in heruntergeladenen Dateien sehen. Könnten Sie mir bitte helfen, wie man es benutzt? In der Zwischenzeit werde ich versuchen, dieses Thema aus Internetquellen zu lesen.
Sandy
@ SimonWhitehead: Ich kann eine Website von Cassini aus betreiben.
Sandy

Antworten:

315

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.

Geben Sie hier die Bildbeschreibung ein

Darin Dimitrov
quelle
38
In meinem Fall war dies das Problem. Ich hatte mein Windows-Kennwort geändert und mein lokaler IIS für Windows 8.1 funktionierte nicht mehr. Ich musste jedes Projekt an mehreren Stellen aktualisieren. In IIS 8 musste ich die Anmeldeinformationen im Anwendungspool aktualisieren, indem ich mit der rechten Maustaste auf den Pool klickte und auf "Erweiterte Einstellungen -> Prozessmodell -> Identität" klickte. Ich habe dann die Website selbst , indem Sie aktualisieren musste „Sites -> MySITE -> Erweiterte Einstellungen -> Physikalischer Pfad Credentials“
teynon
4
Selbst wenn das Konto vorhanden und das Kennwort korrekt ist, wurde es möglicherweise deaktiviert. Dies würde die gleichen Symptome verursachen.
Wolfgang
2
Ja, das ist die Lösung. Mein Kontopasswort wird sehr oft geändert. Und ich habe vergessen, das neue Passwort in den "Erweiterten Einstellungen"
anzugeben
2
Das Überprüfen des Ereignisprotokolls ist der richtige Weg. Es hat mir bei diesen Problemen immer geholfen. Als ich das letzte Mal das Ereignisprotokoll überprüft habe und festgestellt habe, dass das Laden der rewrite.dll in iis fehlgeschlagen ist, bin ich zu den Programmen und Funktionen in der Systemsteuerung gegangen. reparierte die Installation und alles ging wieder normal.
Amr Elgarhy
3
Wir hatten kürzlich eine Passwortänderung. Dies war die Lösung. Für andere, siehe Screenshot hier: i.imgur.com/rp8bnGy.png
AskYous
43

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:

  1. Überprüfen Sie Ihre Windows Event Viewer- drücken Sie Win + R und geben Sie: ein eventvwr, und drücken Sie dann ENTER.
  2. Windows Event ViewerKlicken Sie auf der linken Seite auf Windows Logs-> Application.
  3. Jetzt müssen Sie einige FEHLER für die Quelle IIS-W3SVC-WPim mittleren Fenster finden.
  4. Wahrscheinlich sehen Sie folgende Nachricht:

Die Modul-DLL >> Pfad-zu-DLL << konnte nicht geladen werden. Die Daten sind der Fehler.

  1. Sie müssen zu Control Panel-> gehen Program and Featuresund je nachdem, welche DLL nicht geladen werden kann, müssen Sie ein anderes Modul reparieren:
    • for rewrite.dll- Suchen Sie IIS URL Rewrite Module 2 und klicken Sie auf Change->Repair
    • für aspnetcore.dll- finden Sie Microsoft .NET Core 1.0.0 - VS 2015 Tooling ... und klicken Sie auf Change-> Repair.
  2. Starte deinen Computer neu.
1_bug
quelle
Diese Antwort hat mir geholfen, ein ähnliches Problem zu beheben. Fehler "Service nicht verfügbar" durch Entfernen von Core 2.2 behoben (Reparatur allein wurde nicht behoben). up Abstimmung.
Roberto
2
Die akzeptierte Antwort half nicht. Das hat es getan. Vielen Dank!
Devil's Advocate
1
Tolle Antwort, das Protokoll zeigt es mir. Die Modul-DLL C: \ Windows \ System32 \ inetsrv \ compdyn.dll konnte nicht geladen werden. Die Daten sind der Fehler.
Also
Für mich war es: 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 Vorschlag
David Refoua
14

In 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.

David
quelle
Ich würde zustimmen, dass dies ziemlich oft passiert
Sandy
11

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.

Tarun
quelle
Und wenn Sie zufällig eine Reihe von Websites , auf den gleichen App Pool verweisen, können Sie appcmd zu Batch-update ihnen: appcmd list site /xml | appcmd set site /[path='/'].applicationPool:YOURNEWPOOL /in
drzaus
Hat auch für mich gearbeitet. Durch das Upgrade von 2008 auf 2012 waren die App-Pools nicht ganz zufrieden.
Anthony Horne
6

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:

"C:\WINDOWS\system32\inetsrv\rewrite.dll" (reference)
    Go to "Programs and Features" (Win+X, F) and repair "IIS URL Rewrite Module 2".
"C:\WINDOWS\system32\inetsrv\aspnetcore.dll" (reference)
    Go to "Programs and Features" (Win+X, F) and repair "Microsoft .NET Core 1.0.0 - VS 2015 Tooling ...".
Zoran P.
quelle
6

Meistens trat dies aufgrund der AppPool-Einstellung auf.

Überprüfen Sie Folgendes, um dies zu beheben

  1. Überprüfen Sie, ob der Apppool-Dienst ausgeführt wird.
  2. Überprüfen Sie die Identität von AppPool.
  3. Geben Sie das neue Passwort ein, wenn es sich für diese Identität geändert hat.

Die folgenden Bilder zeigen diese Einstellungen in IIS

Geben Sie hier die Bildbeschreibung ein

Hassan Nazeer
quelle
5

Wenn Sie über McAfee HIPS verfügen und im Anwendungsprotokoll der Ereignisanzeige der folgende Fehler angezeigt wird:

Die Modul-DLL C: \ Windows \ System32 \ inetsrv \ HipIISEngineStub.dll konnte nicht geladen werden.
Die Daten sind der Fehler.

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:

  1. Klicken Sie auf Start, Ausführen, geben Sie Explorer ein und klicken Sie auf OK.
  2. Navigieren Sie zu:% windir% \ system32 \ inetsrv \ config
  3. Öffnen Sie die Datei applicationHost.config als Administrator zur Bearbeitung im Editor.
  4. Bearbeiten Sie den Abschnitt <globalModules> und entfernen Sie die folgende Zeile:
    <add name = "MfeEngine" image = "% windir% \ System32 \ inetsrv \ HipIISEngineStub.dll" />

  5. Bearbeiten Sie den Abschnitt <Module> und entfernen Sie die folgende Zeile:
    <add name = "MfeEngine" />

  6. Nachdem Sie die Datei applicationHost.config bearbeitet haben, speichern Sie die Datei und starten Sie den IIS-Server mit iisreset oder durch Neustart des Systems neu.
Orhan Celik
quelle
5

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.

Abhishek Agrawal
quelle
4

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.

thd
quelle
4

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.

Swapnil Kale
quelle
3

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.

Humbads
quelle
3

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)

Dror T.
quelle
3

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

Miquel
quelle
2

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:

Der Arbeitsprozess für den Anwendungspool 'appPoolName' hat beim Versuch, Konfigurationsdaten aus der Datei '\? \ C: \ inetpub \ temp \ apppools \ appPoolName \ appPoolName.config', Zeile zu lesen, den Fehler 'Konfigurationsdatei ist nicht wohlgeformtes XML' festgestellt Nummer 3'. Das Datenfeld enthält den Fehlercode.

Was mir sagte, dass es Fehler in der application.config gab bei:

C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config

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

ShaneC
quelle
"Ein Element, das IIS eindeutig nicht mag" Was ist das für ein spezifisches Element, das Sie erwähnt haben?
Akhil
Ich habe diesen Beitrag vor über 4 Jahren gemacht. Ich bin nicht sicher, welches Element in der web.config war, aber das ist nicht der Punkt. Das vom OP beschriebene Problem mit dem App-Pool ist mir passiert und ich habe diese nicht hilfreichen Fehlermeldungen zurückerhalten. Die Ursache dafür war, dass ich einen falschen Eintrag in die web.config meiner Site eingegeben hatte. (Möglicherweise mit einem Rechtschreib- oder Syntaxfehler oder einem Abschnitt, den IIS nicht als gültig erkannt hat)
ShaneC
2

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.

Dantheman
quelle
2

Das Ändern des "Managed Pipeline Mode" von "Classic" in "Integrated" hat bei mir funktioniert. Sie kann unter Anwendungspools -> Grundeinstellungen geändert werden

MartinS
quelle
Dies hat mein Problem behoben, das nach dem Anwenden der folgenden Windows-KB auf unseren Windows Server 2008 R2 mit IIS 7.5 auftrat. ### 2019-07 Sicherheits- und Qualitäts-Rollup für .NET Framework 3.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 für Windows 7 und Server 2008 R2 für x64 (KB4507420) Weitere Informationen: support.microsoft.com/kb/4507420 ###
phanf
1

Nur um diese Anniversary UpdateProbleme zu ergänzen (danke Microsoft), wenn die Datei, die Sie vermissen, ist cgi.dll, dh Ihre Event Viewerhat

The Module DLL C:\WINDOWS\System32\inetsrv\cgi.dll failed to load.  The data is the error.

Dann, um dies zu beheben:

  1. Gehe zu IIS Manager
  2. Wählen Sie die oberste Zeile im ConnectionsBedienfeld aus (normalerweise Ihren PC-Namen).
  3. Ganz unten im rechten Bereich Managementsollten Sie unten habenWeb Platform Installer
  4. Sobald dies geladen ist, wählen Sie Products
  5. Geben Sie in der Suche ein und drücken Sie cgidann<Enter>
  6. Wählen Sie IIS: CGIund klicken Sie dann Addrechts und schließlich Installunten
  7. Nach der Installation sollten Sie gezwungen sein, Ihren PC neu zu starten, und Sie sollten repariert sein.
Serj Sagan
quelle
1
Meins war das "Url Rewrite", das ich deinstalliert und dann neu installiert habe. Weil ich diesen Fehler bekam: "Die Modul-DLL C: \ WINDOWS \ system32 \ inetsrv \ rewrite.dll konnte nicht geladen werden. Die Daten sind der Fehler."
Gwasshoppa