Получение аварийных дампов рабочих процессов IIS - PullRequest
7 голосов
/ 10 сентября 2008

Я делаю что-то плохое в своем приложении ASP.NET. Это может быть любое количество библиотек CTP, которые я использую, или я просто неправильно что-то утилизирую. Но при повторном развертывании ASP.NET в моей установке Vista IIS7 или установке IIS6 на моем сервере происходит сбой рабочего процесса IIS.

Я сузил проблему до своего поискового робота HTTP, многопоточного зверя, который сканирует сайты на предмет полезной информации по запросу. После того, как я запустил сканер и заново развернул приложение поверх, а не изящно выгрузил домен приложения и перезагрузил его, рабочий процесс IIS завершится сбоем (появится сообщение об ошибке) и продолжит перезагрузку домена приложения.

Когда происходит этот сбой, где я могу найти дамп сбоя для анализа?

Ответы [ 3 ]

15 голосов
/ 16 сентября 2008

Загрузить средства отладки для Windows: http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx

Инструменты отладки для Windows имеют скрипт (ADPLUS), который позволяет создавать дампы при сбое процесса: http://support.microsoft.com/kb/286350

Команда должна выглядеть примерно так (если вы используете IIS6):

cscript adplus.vbs -crash -pn w3wp.exe

Эта команда присоединит отладчик к рабочему процессу. При возникновении сбоя генерируется дамп (файл * .DMP).

Вы можете открыть его в WinDBG (также входит в Инструменты отладки для Windows). Файл> Открыть Crash dump ...

По умолчанию WinDBG покажет вам (рядом с командной строкой) поток, в котором произошел сбой процесса.

Первое, что вам нужно сделать в WinDBG, это загрузить расширения .NET Framework:

.loadby sos mscorwks

Затем вы отобразите управляемый стек вызовов:

!clrstack

если в потоке не выполнялся управляемый код, вам нужно проверить собственный стек:

kpn 200

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

http://msdn.microsoft.com/en-us/library/ee817663.aspx

2 голосов
/ 10 сентября 2008

Найден быстрый поиск IISState - он опирается на средства отладки Windows и должен запускаться при возникновении сбоя, но с учетом описанных вами обстоятельств это не должно это не проблема,

0 голосов
/ 15 августа 2014

Вы также можете использовать DebugDiag для этого

Отличное объяснение можно найти здесь:

http://blogs.msdn.com/b/tess/archive/2009/03/20/debugging-a-net-crash-with-rules-in-debug-diag.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...