Я делаю что-то плохое в своем приложении ASP.NET. Это может быть любое количество библиотек CTP, которые я использую, или я просто что-то не утилизирую должным образом. Но когда я повторно развертываю свой ASP.NET на установку Vista IIS7 или установку IIS6 на моем сервере, у меня происходит сбой рабочего процесса IIS.
Я сузил проблему до своего HTTP-сканера, который представляет собой многопоточное чудовище, которое сканирует сайты в поисках полезной информации, когда ее об этом просят. После запуска поискового робота и повторного развертывания приложения поверх, вместо изящной выгрузки appDomain и перезагрузки рабочий процесс IIS выйдет из строя (появится сообщение о сбое) и продолжит перезагрузку домена приложения.
Когда происходит этот сбой, где я могу найти аварийный дамп для анализа?
Быстрый поиск обнаружил IISState - он полагается на Инструменты отладки Windows и должен запускаться при возникновении сбоя, но, учитывая описанные вами обстоятельства, это не должно быть проблемой,
Скачать инструменты отладки для Windows: http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx
В Debugging Tools for Windows есть сценарий (ADPLUS), который позволяет создавать дампы при АВАРИЙНОМ процессе процесса: http://support.microsoft.com/kb/286350
Команда должна быть примерно такой (если вы используете IIS6):
cscript adplus.vbs -crash -pn w3wp.exe
Эта команда подключит отладчик к рабочему процессу. Когда происходит сбой, создается дамп (файл * .DMP).
Вы можете открыть его в WinDBG (также включенном в Инструменты отладки для Windows). Файл> Открыть аварийный дамп ...
По умолчанию WinDBG покажет вам (рядом с командной строкой) поток, в котором произошел сбой процесса.
Первое, что вам нужно сделать в WinDBG, - это загрузить расширения .NET Framework:
.loadby sos mscorwks
затем вы отобразите управляемый стек вызовов:
!clrstack
если в потоке не выполнялся управляемый код, вам нужно проверить собственный стек:
kpn 200
Это должно дать вам некоторые идеи. Чтобы продолжить устранение неполадок, я рекомендую вам прочитать следующую статью:
http://msdn.microsoft.com/en-us/library/ee817663.aspx
FYI adplus.vbs был заменен на adplus.exe в последней версии инструментов отладки для Windows.
Присоединяется ли ADPlus.exe к процессу w3p.exe? Я предполагаю, что да ... но что будет, если этот процесс перерабатывает?
Могу ли я использовать adplus.vbs для IIS 7–7,5?
Эти демонстрации должны быть в состоянии помочь вам.