Есть несколько вещей, которые вы можете сделать:
1. Инициализация приложения
Вы можете использовать модуль инициализации приложения, который входит в комплект поставки IIS 8.0
вы можете иметь что-то подобное в вашем web.config
<applicationInitialization
doAppInitAfterRestart="true" >
<add initializationPage="/" />
</applicationInitialization>
Это будет отправлять запрос в корень вашего приложения ( initializationPage="/"
) каждый раз, когда ваше приложение запускается автоматически.
Вы также можете настроить режим запуска для пула приложений, Always Running
что означает, что при каждом перезапуске IIS он обязательно запустит пул приложений немедленно (если щелкнуть правой кнопкой мыши пул приложений,Advanced Settings
и Preload
для вашего сайта (щелкните правой кнопкой мыши на сайте, Manage Site
затемAdvanced Settings
2. Отключить время простоя
Кроме того, вы можете отключить idleTimeout (по умолчанию IIS закроет приложение после 20 минут активности), изменив значение in Idle Time-out
для пула приложений на 0 (бесконечно).
3. Отключить периодическую переработку
также отключение Regular Time Interval (minutes)
по умолчанию IIS будет перезапускать ваше приложение каждые 29 часов.
Для
applicationInitialization
идет в<configuration><system.webServer>
По моему опыту, AlwaysRunning и Preload с включенной поддержкой не сильно ускоряются. Наибольшее время ожидания уходит на динамическую компиляцию (которую можно исправить с помощью прекомпиляции aspx) и загрузку сборок в память и кеширование.
источник