Как избежать прогрева пула приложений в IIS
У меня проблемы с сайтом ASP.net (фреймворк 3.5, IIS6) с очень медленным временем ответа при первом обращении. Я предполагаю, что проблема заключается в утилизации пула приложений и необходимости прогреваться.
Я задумался. Как часть сайта, у меня есть HTTP-модуль, который запускает "бесконечный цикл" в отдельном потоке, который периодически (каждые 5 секунд) вызывает sproc в SQL, чтобы убедиться, что база данных все еще там. Мне интересно, может ли подобный подход сработать, чтобы сайт отправлял HTTP-запрос "себе" в качестве поддержки.
Мой вопрос, прежде чем я пойду и сделаю это, может кто-нибудь придумать причину, почему это не сработает? Например, что-то вроде "о нет... ASP.Net выяснит, что вы играете с собой, а не проходите весь жизненный цикл страницы... и т. Д. И т. Д.".
1 ответ
У вас не может быть надежного сценария разогрева внутри IIS 6. Если пулы приложений останавливаются, то HttpModule больше никогда не запустится (пока кто-нибудь не перейдет на сайт). IIS 7 исправляет это, хотя с конфигурацией.
Я предлагаю использовать скрипт / программу на сервере, большинство установок sharepoint должно иметь один.
Простой скрипт:
http://blogs.msdn.com/b/joelo/archive/2006/08/13/697044.aspx