Процесс, обслуживающий пул приложений "Classic.NET AppPool" произошла фатальная ошибка связи со Службой активации процесса Windows

я запускаю 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. Услуга недоступна.

кто-нибудь, пожалуйста, помогите мне определить, как это произошло и что мне нужно сделать, чтобы предотвратить это в будущем.

5 ответов


этот довольно неприятный. Я рекомендую получить диагностика отладки IIS инструменты. Вероятно, вы можете облегчить этот симптом, отключив "быструю защиту от сбоев" в свойствах пула приложений, но это просто замаскирует проблему. Происходит то, что ваше приложение испытывает исключение так часто/так часто, что служба отключается. Вам нужно будет запустить диагностический инструмент, чтобы захватить все, что происходит внутри и снаружи, чтобы найти исключение это происходит.

Это может быть очень трудоемкой задачей, потому что инструмент будет собирать гигабайты мусора, чтобы просеять через. Если Вам ПОВЕЗЕТ, отключение "быстрой защиты от сбоев" может позволить исключению перейти в браузер, но я предполагаю, что сервер просто зависнет.


Если вы используете NServiceBus, убедитесь, что любая учетная запись, под которой работает пул приложений, имеет разрешения на чтение очереди сообщений.

NServiceBus запускает фоновую задачу при запуске приложения, которая истекает через 10 секунд, в результате чего процесс w3wp будет убит, если он не может читать из очереди. После N (по умолчанию 5) w3wp аварийно завершает работу быстро-защита от сбоя срабатывает и останавливает приложение бассейн.

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


его, скорее всего, вызвано бесконечным циклом.

(У меня была та же проблема.) Поэтому вам просто нужно будет искать места в коде, которые используют циклы, и посмотреть, остановит ли удаление одного из них ошибку. Как только вы нашли виновника, вы можете попытаться выяснить, что заставляет его бесконечно петлять.


Я просто отследил и исправил ту же неприятную проблему. Пара вещей, которые могут вызвать проблему:

  • Сервер.Transfer () loop
  • Вызов CurrentThread.Abort () в определенных сценариях.. (Как после сервера.Трансфер()!)

исправление этих вещей-это то, что исправило это для нас.


У меня была эта проблема, средство просмотра событий имело " DLL модуля C:\Windows\system32\RpcProxy\RpcProxy - ... не удалось загрузить dll. Данные-это ошибка."Этот пост имел шаги, чтобы исправить это: http://forums.iis.net/t/1154189.aspx