2009-09-18 11 views
34

Używam aplikacji ASP.NET 3.5 Web na IIS 7 w systemie Windows Server 2008.Proces służąc puli aplikacji „Klasyczny NET AppPool” poniósł poważny błąd komunikacji z Windows Process Activation Służby

Otrzymywałem następujący błąd wcześniej tego popołudnia:

HTTP Error 503. The service is unavailable.

Spojrzałem w dziennikach zdarzeń i odkrył, że:

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.

Oto szczegóły tego zdarzenia:

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> 

Spowodowało:

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

Oto szczegóły tego zdarzenia:

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> 

Zawarcie w the: HTTP Error 503. Usługa jest niedostępna.

Czy ktoś mógłby mi pomóc w ustaleniu, jak to się stało i co muszę zrobić, aby zapobiec temu w przyszłości.

+0

Czy korzystasz z 32-bitowego lub 64-bitowego systemu Windows 2008? – Kev

+0

Hi Kev. 64-bitowy Windows 2008. –

+0

Ustaw IIS, aby wysyłać błędy do przeglądarki: http://stackoverflow.com/questions/1453791/classic-asp-on-iis7-refusing-to-send-errors-to-browser-on-500-internal -server-er/1455041 # 1455041 – lsalamon

Odpowiedz

17

Ten jest dość nieprzyjemny. Polecam uzyskać narzędzia IIS Debug Diagnostics. Prawdopodobnie można złagodzić ten objaw poprzez wyłączenie funkcji "Rapid Fail Protection" we właściwościach puli aplikacji, ale to po prostu zamaskuje problem. Co się dzieje, jest to, że twoja aplikacja doświadcza wyjątku tak często/tak często, że usługa się wyłącza. Będziesz musiał uruchomić narzędzie diagnostyczne, aby przechwycić wszystko wchodząc i wychodząc, aby znaleźć wyjątek, który się pojawia.

To może być bardzo pracochłonne zadanie, ponieważ narzędzie zgromadzi gigabajty śmieci, które będą przesiewać. Jeśli masz szczęście, wyłączenie "ochrony przed awarią awarii" może pozwolić na przejście wyjątku do przeglądarki, ale domyślam się, że serwer po prostu się zawiesza.

7

Jest to najprawdopodobniej spowodowane nieskończoną pętlą.

(Właśnie miałem ten sam problem.) Będziesz więc musiał poszukać miejsc w kodzie, które używają pętli i sprawdzić, czy usunięcie jednego z nich zatrzymuje błąd. Po znalezieniu sprawcy, możesz spróbować dowiedzieć się, co powoduje jego pętlę w nieskończoność.

9

Jeśli używasz NServiceBus, upewnij się, że niezależnie od konta, na którym działa pula aplikacji, ma uprawnienia do odczytywania kolejki komunikatów.

NServiceBus uruchamia zadanie w tle podczas uruchamiania aplikacji, które wygaśnie po 10 sekundach, powodując, że proces w3wp zostanie zabity, jeśli nie będzie mógł odczytać go z kolejki. Po n (domyślnie 5) w3wp powoduje awarię funkcji Rapid-Fail Protection i zatrzymuje pulę aplikacji.

http://blog.jonathanoliver.com/2010/11/nservicebus-w3wp-exe-processes-crashing/

+0

To jest dokładnie ten sam problem, na który się natknąłem. Dzięki za to. –

0

miałem ten problem, widz wydarzenie miało „modułu DLL. C: \ Windows \ system32 \ RpcProxy \ pliku Rpcproxy.dll udało się załadować dane jest błąd."Ten post miał kroki, aby rozwiązać ten problem: http://forums.iis.net/t/1154189.aspx

2

właśnie wytropił i stała ten sam problem przykry Kilka rzeczy, które mogą powodować problem.

  • A Server.Transfer() pętlę
  • Wywołanie CurrentThread.Abort() w niektórych scenariuszach .. (jak po Server.Transfer()!)

ustalania tych rzeczy jest to, co ustalone to dla nas.

Powiązane problemy