Вопрос

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

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

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

Это было полезно?

Решение

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

В Debugging Tools для 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

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

Быстрый поиск позволил найти Iisгосударство - это зависит от Средства отладки Windows и должен запускаться при возникновении сбоя, но, учитывая обстоятельства, которые вы описали, это не должно быть проблемой,

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

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

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

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