Назад | Перейти на главную страницу

Инициализация приложения IIS не выполняется, хотя все параметры настроены

Конечная цель - сделать так, чтобы каждый раз, когда мой пул приложений перезагружается (что должно происходить всякий раз, когда я выпускаю обновление для сайта), мой сайт посещался один раз для «разогрева». Обычно первое посещение после перезагрузки занимает 2,5 секунды, а последующие посещения - всего 0,5 секунды, поэтому его необходимо посещать один раз после каждого обновления. Я хотел бы автоматизировать это, и, похоже, функция инициализации приложений Windows - это способ сделать это.

Проблема в том, что, когда эта функция включена, после перезапуска пула приложений (или перезапуска чего-либо) я не вижу никаких журналов доступа для посещения моего сайта. Похоже, что функция инициализации приложения вообще не работает. Я не вижу ошибок в журнале системных событий или каких-либо способов устранения неполадок.


Вот среда:


Вот что я настроил (используя Инициализация приложения IIS 8.0 руководство):


Исправление проблем:

<add name="ApplicationInitializationModule" image="%windir%\System32\inetsrv\warmup.dll" />

Похоже, что должна быть некоторая несовместимость между функцией инициализации приложения IIS и сайтами ASP.NET Core 3.1, потому что она вообще не работает и, похоже, нет никакого способа устранить неполадки.

Поэтому я решил полностью отказаться от внутреннего хостинга IIS и вместо этого разместить Kestrel внутри службы Windows Service Worker.

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

(автоматический переводчик, не обращайте внимания на орфографические ошибки)