Жизненный цикл приложения ASP.NET - НЕ жизненный цикл страницы

Я пытаюсь отладить проблему, возникающую в веб-приложении asp.net, работающем на IIS 7.5. Я ожидал обнаружить, что когда мы развернули наше приложение, изменив физический путь к новой копии кода, запросы не были выполнены.

У меня сложилось впечатление, что выполнение текущих запросов завершится в старом экземпляре приложения, а новые запросы будут выполнены для нового экземпляра. Если это так, я ожидал, что старый экземпляр будет работать до тех пор, пока не будет достигнут httpRuntime.shutdownTimeout.

Короче говоря, я попытался воспроизвести это локально, но этого не произошло. Независимо от того, как долго я выполняю свой запрос на получение IIS, кажется, что он будет ждать за пределами настройки shutdownTimeout.

Это та часть жизненного цикла, которая меня интересует. Что происходит между изменением физического пути приложения и отключением IIS любых выполняемых в настоящее время запросов?

1 ответ

Существует очень подробное объяснение жизненного цикла приложения ASP.NET на MSDN.

Методы Application_Start и Application_End являются специальными методами, которые не представляют события HttpApplication. ASP.NET вызывает их один раз за время существования домена приложения, а не для каждого экземпляра HttpApplication.

Application_Start

Вызывается, когда запрашивается первый ресурс (например, страница) в приложении ASP.NET. Метод Application_Start вызывается только один раз в течение жизненного цикла приложения. Этот метод можно использовать для выполнения задач запуска, таких как загрузка данных в кэш и инициализация статических значений. Вы должны установить только статические данные при запуске приложения. Не устанавливайте никакие данные экземпляра, поскольку они будут доступны только первому экземпляру создаваемого класса HttpApplication.

Другие вопросы по тегам