Пул приложений, установленный на AlwaysRunning, не запускает автоматически размещенную службу

Пул приложений, установленный на AlwaysRunning, не запускает автоматически размещенную службу

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

При развертывании приложения я вижу следующие записи журнала в приемнике «IIS AspNetCore Modeule» V2.

  1. 28.01.2022 9:25:15 AM - Выполняется задание: Выпуск
  2. 28.01.2022 9:25:28 AM - Приложение «C:<путь к приложению>» было перезапущено после обнаружения app_offline.htm.
  3. 28.01.2022 9:25:29 — Приложение «MACHINE/WEBROOT/APPHOST//» закрыто.
  4. 28.01.2022 9:25:33 утра — Выпуск задания завершен с результатом: успешно

Где

  1. Сборка микросервиса DevOps — Начало
  2. Переработка (сборка создает app_offline)
  3. Отключение API
  4. Начало сборки микросервиса DevOps — успешно

Я озадачен тем, что нет соответствующего сообщения о запуске API, например: Приложение «C:<путь к приложению>» запущено успешно.

Важно отметить, что это «микросервис» .NET Core API, который не принимает никаких http-запросов. В коде стартап имеет такую ​​конфигурацию.

services.AddHostedService<AuthorizationMessageConsumerService>();

и

public class AuthorizationMessageConsumerService : BackgroundService

Если после каждого развертывания конечная точка /health пингуется, то служба запускается.

Я могу только предположить, что AlwaysRunning просто создал новый поток запросов, но не вызывает никакой точки входа, которая вызывается входящим http-запросом /health.

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

Конфигурация IIS

введите описание изображения здесь

решение1

Единственное, чего мне не хватало, это Preload Enabled=true на уровне приложения IIS. Это в основном отправит запрос на запуск вашего приложения после перезапуска из-за развертывания или чего-то еще.

Связанный контент