Я запускаю приложение ASP.NET на IIS 7.
Сервер блаженно гудит, пока
Похоже, что рабочий процесс повторяется, не так ли? Но w3wp никогда не умирал, новый w3wp так и не запускался, и никакая переработка не регистрировалась.
Что могло быть причиной этого? И как мне этого не допустить?
Технические подробности:
Обновить
Я сталкиваюсь с этой ситуацией при нагрузочном тестировании веб-приложения.
На протяжении всего процесса тестирования я много раз перезапускал и перезапускал веб-сервер. По-видимому, это меняет криптографический ключ, используемый для получения веб-ресурсов, как объясняется здесь: Исключение «Заполнение недействительно и не может быть удалено» на WebResource.axd. Программное обеспечение для тестирования недостаточно умен, чтобы изменять свои запросы (без значительных изысков) в ответ на новый ключ.
Результатом всего этого стал отказ нескольких запросов с криптографическими исключениями .Net. Я решил, что мне наплевать на эти запросы, и удалил их из теста. Кажется, это решает причудливую псевдорециркуляцию, о которой идет речь.
Две вещи остаются неизвестными:
Каждый раз при изменении файла в папке приложения это может вызвать перезапуск пула приложений. Антивирусные мониторы реального времени печально известны этим, но на самом деле существует довольно большой список потенциальных нарушителей. Проверьте следующее от Тесс Феррандес:
В частности, вы можете включить событие мониторинга работоспособности ASP.Net для записи активности в журнал событий приложения с указанием причины перезапуска.
Событие Application_Start будет инициировано только один раз, в начало жизни приложений. Я не слышал о Connection_Abandoned_By_ReqQueue, но похоже, что веб-приложение делает что-то необычное в обработчике Global.asax для Application_Start.
Событие Application_End запускается из-за исключения, вызывающего завершение работы приложения; знаменуя собой конец жизненного цикла приложения.
Я предполагаю, что вы знаете о жизненном цикле приложения ASP .Net применительно к IIS6 и IIS7, если нет:
IIS 6.0 - http://msdn.microsoft.com/en-us/library/ms178473.aspx
IIS 7.0 - http://msdn.microsoft.com/en-us/library/bb470252.aspx
Эти статьи могут помочь устранить любую путаницу, если вы раньше не смотрели на это.
Чтобы решить эту проблему, я бы начал с определения приложения, в котором произошел сбой. Если можете, взгляните на обработчики Global.asax, в противном случае проверьте наличие обновлений для приложения.
Это также может быть случай повреждения памяти согласно одному потоку, который я прочитал об исключении, которое вы получаете, но я не уверен, с чего вы начали бы расследование, если это так.