У нас есть приложение ASP.NET (3.5 SP1), работающее на IIS7 / Windows 2008. Мы перехватываем события Application_Start и Application_End в Global.asax.Мы также размещаем сервисы WCF в приложении и перехватываем события OnOpening и OnClosing через ServiceHostFactory.Таким образом, мы подумали, что нам гарантировано уведомление о любом запуске и остановке приложения, запланированном или незапланированном.
Несколько дней назад наше приложение перехватило событие Application_Start, находясь в состоянии «запущен» / «запущен».
Событие Application_End не предшествовало Application_Start (и даже не следовало за ним несколько минут спустя, если учитывать условия гонки).
Нашей первой мыслью было, что наше приложение на самом деле молча зависло и завершилось.На самом деле произошло то, что новый домен приложений развернулся для обслуживания входящих запросов, но фоновые потоки существующего домена приложений (мы много чего делаем в потоках ThreadPool) работали в течение нескольких дней - пока я не убил их с помощью IISRESET.
Предполагается, что Application_End не сработал, потому что исходный домен AppDomain не завершился ... но тогда почему Application_Start сработал?
Ищете подсказку или документ, описывающий, как работает механизм полуотключения + AppDomainStartup в ASP.СЕТЬ.
Заранее спасибо,
Говард Хоффман