2013-03-18 1 views
0

Я пытаюсь отладить проблему, с которой я сталкиваюсь с веб-приложением asp.net, работающим на IIS 7.5. Я ожидал обнаружить, что, когда мы развернули наше приложение, изменив физический путь на новую копию кода, запросы не выполнялись.Жизненный цикл приложения ASP.NET - НЕВОЗМОЖНЫЙ жизненный цикл страницы

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

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

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

+0

Позвольте визуальной студии развернуть свой код для вас. Я понятия не имею, почему вы считаете, что POSTS/GETS (запрос) будет передаваться через экземпляры. Я бы искал любые жестко закодированные пути в приложении, если визуальная студия ставит squiggly под путь, это стоит исследовать. Я не думаю, что app_start, app_end имеет какое-либо отношение к вашей проблеме, если я правильно понимаю. На самом деле, очень редко вы даже должны использовать их. – RandomUs1r

+0

Возможный дубликат [Любой может объяснить, как ASP> NET Application lifecyle работает от первого запроса, доходит до IIS до ответа на страницу] (http://stackoverflow.com/questions/11581619/anyone-can-explain-how-aspnet- приложение-lifecyle-работа-запуск из-за-первого-р) –

ответ

0

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

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

Application_Start

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

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

  • Нет связанных вопросов^_^