Подтвердить что ты не робот

Когда запускается PreApplicationStartMethod для запуска?

При использовании метода WebActivator PreApplicationStart то, что фактически запускает методы, связанные с этим, запускаться? Когда IIS7 запустил приложение? Когда первый запрос отправляется на веб-сервер? Что-то другое? Если у вас есть ответ, не могли бы вы также указать ссылку, где вы получили эту информацию?

Есть ли какие-либо изменения в IIS 7.5?

4b9b3361

Ответ 1

WebActivator PreApplicationStart фактически использует ASP.NET PreApplicationStartMethodAttribute (см. Эту ссылку, чтобы увидеть, как работает веб-активатор).

PreApplicationStartMethodAttribute работает, когда среда выполнения ASP.NET запускает приложение, а код запускается на ранней стадии конвейера, даже до того, как событие app_start будет запущено. Таким образом, чтобы ответить на ваш вопрос, триггер произойдет, когда первый запрос будет сделан к веб-серверу (который, в свою очередь, вызовет запуск приложения).

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

Если вы используете функцию автозапуска, IIS перезапустит ваше приложение при PreApplicationStart пула приложений и, таким образом, будет запущен PreApplicationStart.

Ответ 2

Небольшое дополнение к ответу @VinayC: если вы добавите точку прерывания в свой PreApplicationStartMehod и отлаживаете свое веб-приложение, вы можете увидеть, что он вызывается по каждому запросу. Я легко подтвердил, что это не обычное поведение, записывая файл журнала в мой PreApplicationStartMethod. Когда он не подключен к отладчику, этот метод не запускается при каждом запросе.