Как вызвать HttpModule для вызова до первого запроса? - PullRequest
1 голос
/ 28 июля 2010

У меня есть несколько приложений, которые я развертываю в среде .NET / IIS.Для этих приложений я зарегистрировал реализацию IHttpModule в разделе system.web / httpModules web.config.В моей реализации IHttpModule у меня есть метод Init (), который запускает некоторые потоки демона и регистрирует, что приложение было запущено.

Моя проблема в том, что Init () не вызывается, пока не поступит первый HTTP-запросв. Есть ли способ заставить систему пойти дальше и немедленно запустить мой модуль вместо ожидания первого HTTP-запроса?

Ответы [ 2 ]

1 голос
/ 28 июля 2010

Если вы используете IIS7, вы можете использовать модуль разогрева приложений IIS, чтобы убедиться, что ваше приложение всегда работает: http://learn.iis.net/page.aspx/688/using-the-iis-application-warm-up-module/

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

В противном случае я бы порекомендовал вам создать службу NT и разместить там свои потоки демонов.

0 голосов
/ 28 июля 2010

Вы должны переместить свой код в файл Global.asax в методе Application_Start:

protected void Application_Start(object sender, EventArgs e)
{
    //your initialization code
}

Обновление:
Как отмечено в комментариях,это не решение проблемы, так как Application_Start также вызывается при первом запросе.

Так что, похоже, единственное решение - найти способ вызова веб-страницы, как только IIS перезапускается.

Вот несколько советов от другого сайта :

Одним из хитрых решений этой проблемы может быть добавление вашего сайта в поисковые системы.Поисковые системы часто сканируют страницы.Таким образом, они попадут на страницу вашего сайта, что приведет к Application_Start, и, таким образом, служба будет запущена и запущена.

Другая идея заключается в том, чтобы зарегистрировать ваш сайт в некоторых службах мониторинга трафика или доступности.Существует множество веб-сервисов, которые следят за вашим сайтом и проверяют его работоспособность и производительность.Все эти сервисы попадают на страницы вашего сайта, а затем собирают статистику.Таким образом, регистрируясь в таких службах, вы можете гарантировать, что ваше веб-приложение постоянно работает.

Я бы пошел с решением для службы мониторинга, с такими службами, как (я не пробовал их):
http://www.montastic.com/
http://www.siteuptime.com/

...