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

StackOverflow https://stackoverflow.com/questions/1445566

Вопрос

Я запускаю веб-приложение 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 Инструменты.Вероятно, вы можете облегчить этот симптом, отключив "Быструю защиту от сбоев" в свойствах вашего пула приложений, но это просто замаскирует проблему.Что происходит, так это то, что ваше приложение испытывает исключение так часто / настолько неоднократно, что служба сама отключается.Вам нужно будет запустить диагностический инструмент, чтобы фиксировать все входящие и исходящие данные, чтобы найти возникающее исключение.

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

Другие советы

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

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

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

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

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

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

  • Сервер.Цикл передачи()
  • Вызов currentThread.Прервать() в определенных сценариях..(Как после Сервера.Передача()!)

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top