Kestrel сразу запускается модулем IIS AspNetCore? - PullRequest
0 голосов
/ 27 февраля 2019

Мы сталкиваемся с проблемой, которая заключается в том, что локально при использовании IIS Express методы класса Startup вызываются сразу после запуска приложения даже без запуска браузера.(Это перенос базы данных)

Однако, когда приложение развернуто в IIS *, класс 1004 * запускается только после первого запроса к сайту.

Виноват ли модуль IIS / AspNetCore?И если да, возможно ли форсировать запуск Kestrel помимо выполнения запроса после развертывания?

1 Ответ

0 голосов
/ 28 февраля 2019

Хорошо, магия состоит из нескольких частей :

Сначала , у нас должен быть пул запущенных приложений.Это настраивается путем установки режима запуска пула на AlwaysRunning (по умолчанию OnDemand).См. Также этот вопрос .

Второй , мы должны установить настройку сайта Preload Enabled на true.(Сайт -> Расширенные настройки).

Третий , мы указываем раздел applicationInitialization в файле web.config.

Эта статья рассказывает, как выполнить этидействия с PowerShell.


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

Процесс примерно такой:

  • остановка всех экземпляров
  • развертывание новой версии вкаждый экземпляр последовательно с периодом ожидания

Это приводит к коротким простоям обслуживания, хотя это хорошо для нас прямо сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...