2008-11-13 4 views
37

Может ли кто-нибудь сказать мне, когда Application_End запускается в жизненном цикле приложения? Когда все сеансы будут завершены, автоматически будет запущено приложение Application_End? + Есть ли другие причины, по которым Application_End может быть запущен?Application_End global.asax

+1

Я удалил свой ответ, что Application_End запускается только при закрытии веб-сайта. Однако несколько минут исследований дали противоречивую информацию по этому вопросу, и я не хочу спускаться с голосования за неправильный ответ. – Cybis 2008-11-13 21:38:41

+0

Не ответ на ваш вопрос, но полезно также выяснить, происходит ли это событие, и вы не знаете, почему: http://blogs.msdn.com/b/tess/archive/2006/08/02/asp -net-case-study-lost-session-variables-and-appdomain-recycles.aspx – Tao 2014-03-28 09:46:45

ответ

36

Событие application_end в основном срабатывает, когда пул IIS перерабатывается или само приложение выгружается. Еще одно замечание, что изменение зависимого файла (скажем, web.config) приведет к перезагрузке приложения, что приведет к тому, что событие application_end загорится, когда оно закрывается.

Следует отметить, что единственный экземпляр, который я обнаружил при запуске конечного события приложения, когда последний сеанс пользователя отключен, приведен в старой документации 2001 года. Я не уверен, что эти критерии все еще применяются.

+2

Я заметил, что когда web.config изменен, это может занять несколько минут до запуска application_end. – 2011-12-01 20:30:25

11

Application_End запускается, когда рабочий процесс ASP.NET завершается. Обычно это происходит после настраиваемого периода бездействия или когда IIS (или соответствующий пул приложений) отключается или перезапускается.

При запуске в IIS 6.0 таймаут бездействия настраивается через настройки пула приложений в диспетчере служб Интернета (Idle Timeout на вкладке «Производительность»). В более ранних версиях IIS его можно установить в machine.config (idleTimeout в processModel).

Смежные вопросы