Процесс, обслуживающий пул приложений «Классический .NET AppPool», столкнулся с фатальной ошибкой связи со службой активации процессов Windows - PullRequest
36 голосов
/ 18 сентября 2009

Я использую веб-приложение 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 ]

16 голосов
/ 22 января 2010

Это довольно неприятный. Я рекомендую получить инструменты IIS Debug Diagnostics . Вероятно, вы можете смягчить симптом, отключив «Быстрая защита от сбоев» в свойствах пула приложений, но это только замаскирует проблему. Что происходит, так это то, что ваше приложение испытывает исключение так часто / так часто, что служба отключается. Вам нужно будет запустить диагностический инструмент, чтобы фиксировать все входящие и исходящие события, чтобы найти исключение, которое происходит.

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

8 голосов
/ 21 апреля 2011

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

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

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

7 голосов
/ 25 марта 2010

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

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

2 голосов
/ 23 января 2014

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

  • Цикл Server.Transfer ()
  • Вызов CurrentThread.Abort () в определенных сценариях.)!)

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

0 голосов
/ 01 июня 2011

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

...