Хорошо, магия состоит из нескольких частей :
Сначала , у нас должен быть пул запущенных приложений.Это настраивается путем установки режима запуска пула на AlwaysRunning
(по умолчанию OnDemand
).См. Также этот вопрос .
Второй , мы должны установить настройку сайта Preload Enabled
на true
.(Сайт -> Расширенные настройки).
Третий , мы указываем раздел applicationInitialization в файле web.config.
Эта статья рассказывает, как выполнить этидействия с PowerShell.
Примечание. Требуется прогрев приложения, поскольку при запуске приложения выполняется миграция БД.При развертывании на нескольких экземплярах мы используем скользящее развертывание, чтобы избежать одновременных миграций.
Процесс примерно такой:
- остановка всех экземпляров
- развертывание новой версии вкаждый экземпляр последовательно с периодом ожидания
Это приводит к коротким простоям обслуживания, хотя это хорошо для нас прямо сейчас.