Я выполняю ASP.NET 3,5 веб-приложения на IIS 7 на Windows Server 2008.
Я получил следующую ошибку ранее этим днем:
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 Diagnostics Инструменты. Возможно, вы можете смягчить симптом, отключив «быструю защиту от прохождения» в свойствах вашего бассейна приложений, но это просто замаскирует проблему. Что происходит, в том, что ваше приложение испытывает исключение, так часто / настолько многократно, что служба выключается. Вам нужно будет запустить инструмент диагностики, чтобы захватить все, что происходит и найти исключение, которое возникает.
Это может быть очень кропотливая задача, потому что инструмент соберет гигабайт мусорных садов, чтобы просеять. Если вам повезет, выключение «Rapid Fail Protection» может позволить исключить к браузеру, но я предполагаю, что сервер просто будет заканчиваться висит.
Скорее всего, это вызвано бесконечным циклом.
(У меня была такая же проблема.) Так что вам просто нужно будет поискать в коде места, которые используют циклы, и посмотреть, устранит ли удаление одного из них ошибку. Как только вы найдете виновника, вы можете попытаться выяснить, что заставляет его зацикливаться бесконечно.