Как найти тупик на веб-сайте ASP.Net

Я использую .Net 2.0, и в какой-то период мой сайт, кажется, заходит в тупик. Он перестает работать, пока я не переработаю пул приложений или не изменю что-нибудь в файле web.config. Я думаю, что проблема возникает из-за тупика.

Мне интересно, есть ли какой-либо инструмент для отладки / проверки сайта, чтобы найти код, который может вызвать тупик.

Прямо сейчас мне пришлось установить интервал повторного использования на 10 минут, что действительно плохо, но это единственный способ решить проблему, и на сайте много кодов, и мне нужно найти проблему. Если я использую инструмент атаки DOS, могу ли я найти блок страницы / кода, вызывающий эту проблему? Если могу, то какой инструмент лучше всего проверить?

Ваше здоровье!

ИЗМЕНИТЬ. Я попытался проверить журналы событий и обнаружил следующее предупреждение. Не знаю, проблема ли, буду копать сейчас. Информация об исключении: Тип исключения: HttpException Сообщение об исключении: Истекло время ожидания запроса.


person Jonas T    schedule 19.07.2012    source источник
comment
Эта серия видео с канала Channel 9 посвящена этой (и тесно связанным темам): . Отладка .NET для производственной среды.   -  person Richard    schedule 19.07.2012


Ответы (3)


Я бы прикрепил визуальную студию к IIS и сломал отладчик при возникновении тупика. Затем вы можете проверить стек вызовов запущенных потоков.

В Code Project есть хорошая статья о том, как для удаленной отладки IIS.

Конечно, вы можете легко настроить тестовую машину с локальным IIS и локальной Visual Studio .NET и сделать это без необходимости удаленной отладки.

person Uwe Keim    schedule 19.07.2012
comment
Я попытался подключить Visual Studio к процессу IIS, но он сказал, что невозможно подключиться к процессу. Компоненты для 64-битного отладчика не зарегистрированы. Восстановите установку удаленного отладчика Visual Studio 2008 с помощью «Установка и удаление программ». Похоже, мы должны попросить наш хостинг обновить Visual Studio на сервере. - person Jonas T; 23.07.2012
comment
@JonasT Я бы предпочел сначала настроить локальную машину (VMware) для имитации работающей системы. Только если это не сработает, попробуйте зайти в живую систему. - person Uwe Keim; 23.07.2012
comment
Я наконец нашел проблему. Это был унаследованный код, в котором использовалась статическая функция статического класса. Когда на сайте растет количество посетителей, это происходит. После того, как я изменил этот код, чтобы использовать экземпляр, а не статический, проблема была решена. - person Jonas T; 02.04.2013

person podiluska    schedule 19.07.2012

Если вы используете «Отслеживание неудачных запросов», и он выдаст хороший результат, который затем скажет вам, что вызывает ошибку, вплоть до уровня модуля. Это даст вам первый шаг к тому, где он сломается.

Прочтите эту статью на iis.net → Устранение неполадок с невыполненными запросами с помощью трассировки в IIS 7

person ianbailey    schedule 19.07.2012
comment
Спасибо. Я попробую, как только попаду на сервер. - person Jonas T; 20.07.2012