프로세스 서빙 애플리케이션 풀 '클래식 .NET AppPool'은 Windows 프로세스 활성화 서비스와 치명적인 통신 오류를 겪었습니다.
-
22-07-2019 - |
문제
Windows Server 2008의 IIS 7에서 ASP.NET 3.5 웹 응용 프로그램을 실행 중입니다.
오늘 오후 일찍 다음 오류를 받았습니다.
HTTP Error 503. The service is unavailable.
이벤트 로그를보고 다음을 발견했습니다.
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.
다음은 해당 이벤트의 자세한 내용입니다.
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>
이로 인해 다음이 발생했습니다.
Application pool 'Classic .NET AppPool' is being automatically disabled due to a series of failures in the process(es) serving that application pool.
다음은 해당 이벤트의 자세한 내용입니다.
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>
결론 : HTTP 오류 503. 서비스를 사용할 수 없습니다.
누군가가 어떻게 이런 일이 일어 났는지, 그리고 미래에 일어나지 않도록해야 할 일을 식별하도록 도와 주시겠습니까?
해결책
이것은 꽤 불쾌한 것입니다. 나는 그것을 얻는 것이 좋습니다 IIS 디버그 진단 도구. 응용 프로그램 풀의 속성에서 "빠른 실패 보호"를 끄면 증상을 완화 할 수 있지만 문제를 가릴 수 있습니다. 계속되는 것은 응용 프로그램이 예외를 자주 경험하고 있으며 서비스가 차단 될 정도로 반복적으로 발생한다는 것입니다. 발생하는 예외를 찾기 위해 들어오고 나가는 모든 것을 캡처하려면 진단 도구를 실행해야합니다.
이 도구가 정크의 기가 바이트를 수집하여 체로 체질하기 때문에 이것은 매우 힘든 일이 될 수 있습니다. 운이 좋으면 "빠른 실패 방지"의 끄면 예외가 브라우저로 진행될 수 있지만 서버가 끝날 것이라는 것이 내 생각입니다.
다른 팁
NServiceBus를 사용하는 경우 응용 프로그램 풀이 실행중인 모든 계정에 메시지 대기열을 읽을 권한이 있는지 확인하십시오.
NServiceBus는 10 초 후에 Timesout에 대한 응용 프로그램 시작에 대한 배경 작업을 실행하여 큐에서 읽을 수없는 경우 W3WP 프로세스가 사멸됩니다. N 이후 (기본값 5) W3WP 충돌은 급속한 보호 방지 차기가 시작되고 응용 프로그램 풀이 중지됩니다.
http://blog.jonathanoliver.com/2010/11/nservicebus-w3wp-exe-processes-crashing/
무한 루프로 인해 발생할 가능성이 높습니다.
(나는 단지 같은 문제가있었습니다.) 따라서 루프를 사용하는 코드의 장소를 찾아서 그 중 하나를 제거하면 오류가 중지되는지 확인해야합니다. 범인을 찾으면 원인이 무기한으로 루프를하는 원인을 알아낼 수 있습니다.
방금 추적하고 같은 불쾌한 문제를 해결했습니다. 문제를 일으킬 수있는 몇 가지 사항 :
- Server.Transfer () 루프
- 특정 시나리오에서 currentthread.abort () 호출 .. (Server.Transfer () 이후!)
그런 것들을 고치는 것은 우리에게 고정 된 것입니다.
이 문제가 있었는데, 이벤트 뷰어는 "모듈 dll c : wind 이 게시물은 이것을 수정하는 단계가있었습니다.http://forums.iis.net/t/1154189.aspx