Подтвердить что ты не робот

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

Я запускаю приложение ASP.NET 4.0 под IIS 7.5. Несколько раз в день наш пул приложений неожиданно перерабатывается. В нашем системном журнале отображается следующее событие:

Пул приложений, обслуживающий процесс "X", подвергся фатальной ошибке связи с Службой активации Windows. Идентификатор процесса был "5768". Поле данных содержит номер ошибки.

ИЛИ

Пул приложений, обслуживающий процесс "X", не смог ответить на пинг. Идентификатор процесса был "1032".

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

Faulting application name: w3wp.exe, version: 7.5.7600.16385, time stamp: 0x4a5bcd2b
Faulting module name: clr.dll, version: 4.0.30319.269, time stamp: 0x4ee9ae83
Exception code: 0xc00000fd
Fault offset: 0x00001916
Faulting process id: 0x508
Faulting application start time: 0x01cd4d8958ecf9ad
Faulting application path: C:\Windows\SysWOW64\inetsrv\w3wp.exe
Faulting module path: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Report Id: 8dcc413b-b98a-11e1-8075-001c23d6d910

Итак, я установил IIS Debugging Tools и установил правило сбоя, указанное "Конкретный пул веб-приложений IIS", без регистрации на первый случай исключений и ничего в разделе "Дополнительные настройки" (исключения, точки останова, события).

Я также (одновременно) запускаю ADPlus из средств отладки Windows с помощью следующей командной строки:

adplus -crash -pn w3wp.exe -NoDumpOnFirst -o c:\logs

Однако, поскольку я подключил отладчики, у меня появилось несколько сообщений "предупреждения" в системном журнале (те, что относятся к "пулу приложений приложений" X, подверглись фатальной ошибке связи... "), но я больше не получаю соответствующее событие уровня ошибки в журнале приложений.

Единственное, что мне удалось получить, это следующее (их было около 50):

[6/18/2012 7:50:25 PM] Thread exited. Exiting thread system id - System ID: 3300. Exit code - 0x800703e9
[6/18/2012 7:50:25 PM] Thread exited. Exiting thread system id - System ID: 4992. Exit code - 0x800703e9
[6/18/2012 7:50:25 PM] Thread exited. Exiting thread system id - System ID: 5456. Exit code - 0x800703e9
[6/18/2012 7:50:25 PM] Thread exited. Exiting thread system id - System ID: 4924. Exit code - 0x800703e9

Код выхода 0x800703e9 указывает на переполнение стека где-то, что повезло, потому что это должно быть легко исправить, когда я смогу его найти.

Однако для этого мне нужна дополнительная информация из моих дампов сбоя, чтобы я мог открыть их с помощью WinDbg и использовать команду "! clrstack", чтобы точно определить мою проблему.

Мой вопрос: У меня неправильно настроены инструменты отладки или я неправильно понимаю журналы событий? Кажется, что наш пул приложений перерабатывается всякий раз, когда я вижу событие в системном журнале относительно "фатальной ошибки связи с Службой активации Windows", однако я не получаю информацию об авариях от IIS Debugging Tools или ADPlus, когда происходят эти события. И по какой-то причине, поскольку я подключил отладчики, я не получаю больше событий "Ошибка" в журнале приложений, которые соответствуют событиям предупреждения о системном журнале. Не знаю, почему. Мне как-то нужно получить полный аварийный дамп с информацией CLR в нем, чтобы я мог выяснить, где моя проблема.

Единственное, что я могу вспомнить, это то, что служба отчетов об ошибках Windows не запущена. Не уверен, что это должно быть или нет.

Спасибо за любую помощь.

4b9b3361

Ответ 1

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

sxe sov

Обратите внимание, что в вашем случае вам потребуется использовать x86-версию отладчика, потому что ваш пул приложений настроен как 32-битный процесс.