Ein Prozess für Anwendungspool ‚Classic .NET AppPool‘ erlitt einen tödlichen Kommunikationsfehler mit dem Windows-Prozessaktivierungsdienst

StackOverflow https://stackoverflow.com/questions/1445566

Frage

Ich arbeite mit einer ASP.NET 3.5 Web-Anwendung auf IIS 7 auf Windows Server 2008.

ich folgende Fehlermeldung erhalten früher an diesem Nachmittag:

HTTP Error 503. The service is unavailable.

Ich schaute in den Ereignisprotokollen und entdeckt, dass:

A process serving application pool 'Classic .NET AppPool' suffered a fatal communication error with the Windows Process Activation Service. The process id was '3328'. The data field contains the error number.

Hier sind die vollständigen Details dieses Ereignisses:

Log Name:      System
Source:        Microsoft-Windows-WAS
Date:          18/09/2009 14:58:31
Event ID:      5011
Task Category: None
Level:         Warning
Keywords:      Classic
User:          N/A
Computer:      computername
Description:
A process serving application pool 'Classic .NET AppPool' suffered a fatal communication error with the Windows Process Activation Service. The process id was '3328'. The data field contains the error number.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-WAS" Guid="{5 .. 0}" EventSourceName="WAS" />
    <EventID Qualifiers="32768">5011</EventID>
    <Version>0</Version>
    <Level>3</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2009-09-18T13:58:31.000Z" />
    <EventRecordID>23552</EventRecordID>
    <Correlation />
    <Execution ProcessID="0" ThreadID="0" />
    <Channel>System</Channel>
    <Computer>computername</Computer>
    <Security />
  </System>
  <EventData>
    <Data Name="AppPoolID">Classic .NET AppPool</Data>
    <Data Name="ProcessID">3328</Data>
    <Binary>6D000780</Binary>
  </EventData>
</Event>

Dies führte zu:

Application pool 'Classic .NET AppPool' is being automatically disabled due to a series of failures in the process(es) serving that application pool.

Hier sind die vollständigen Details dieses Ereignisses:

Log Name:      System
Source:        Microsoft-Windows-WAS
Date:          18/09/2009 15:03:05
Event ID:      5002
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      computername
Description:
Application pool 'Classic .NET AppPool' is being automatically disabled due to a series of failures in the process(es) serving that application pool.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-WAS" Guid="{5 .. 0}" EventSourceName="WAS" />
    <EventID Qualifiers="49152">5002</EventID>
    <Version>0</Version>
    <Level>2</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2009-09-18T14:03:05.000Z" />
    <EventRecordID>23557</EventRecordID>
    <Correlation />
    <Execution ProcessID="0" ThreadID="0" />
    <Channel>System</Channel>
    <Computer>computername</Computer>
    <Security />
  </System>
  <EventData>
    <Data Name="AppPoolID">Classic .NET AppPool</Data>
    <Binary>
    </Binary>
  </EventData>
</Event>

Abschließenden in dem:. HTTP-Fehler 503. Der Dienst ist nicht verfügbar

Würde mir bitte jemand helfen, zu erkennen, wie das passiert ist und was ich tun muss, um es zu verhindern, dass in der Zukunft passiert.

War es hilfreich?

Lösung

Dies ist ein ziemlich böse ein. Ich empfehle immer die IIS Debug Diagnostics Tools. Sie können sich wahrscheinlich das Symptom durch Ausschalten „Rapid-Fail-Protection“ in den Eigenschaften Ihres Anwendungspools lindern, aber das wird nur das Problem verschleiern. Was ist da los ist, dass Ihre Anwendung eine Ausnahme erfährt so oft / so wiederholt, dass der Dienst schaltet sich ab. Sie finden das Diagnose-Tool ausführen müssen, alles zu erfassen und aus gehen die Ausnahme zu finden, das ist auftritt.

Dies kann eine sehr mühsame Aufgabe sein, weil das Werkzeug Gigabyte Junk sammeln zu sichten. Wenn Sie Glück haben, kann damit das Ausschalten der „Rapid-Fail-Protection“ die Ausnahme an den Browser gehen durch, aber meine Vermutung ist, dass der Server gerade hing am Ende.

Andere Tipps

Wenn Sie mit NServiceBus stellen Sie sicher, was auch immer das Anwendungspoolkonto unter ausgeführt werden Berechtigungen aus der Nachrichtenwarteschlange lesen haben.

NServiceBus führt eine Hintergrundaufgabe auf Start der Anwendung, die nach 10 Sekunden timesout, wodurch der w3wp Prozess getötet zu werden, wenn sie nicht aus der Warteschlange lesen. Nach n (default von 5) w3wp Schutz für schnelle Fehler Tritte in und stoppt den Anwendungspool stürzt ab.

http://blog.jonathanoliver.com/ 2010/11 / nservicebus-w3wp-exe-Prozesse-Abstürze /

Die höchstwahrscheinlich durch eine Endlosschleife verursacht.

(Ich hatte gerade das gleiche Problem.) Sie werden also nur für Stellen im Code suchen müssen, die Schleifen verwenden und sehen, ob einer von ihnen das Entfernen der Fehler stoppt. Sobald Sie die Schuldigen gefunden zu haben, dann können Sie versuchen, herauszufinden, was auf unbestimmte Zeit, es zu Schleife verursacht.

Ich habe gerade aufgespürt und fixierte das gleiche unangenehme Problem. Ein paar Dinge, die das Problem verursachen könnten:

  • A Server.Transfer () loop
  • Beim CurrentThread.Abort () in bestimmten Szenarien .. (Wie nach einem Server.Transfer ()!)

die Dinge Fixing ist, was es für uns festgelegt.

Ich hatte dieses Problem, die Ereignisanzeige hatte "The Modul DLL C:.. \ Windows \ system32 \ RpcProxy \ RpcProxy.dll nicht geladen Die Daten der Fehler" Dieser Beitrag hatte die Schritte, dies zu korrigieren: http://forums.iis.net/t/1154189.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top