
Я настроил пул на автоматический запуск и отсутствие сна. У меня проблемы с автоматическим запуском. Насколько я понимаю, после повторного запуска будет запущен рабочий поток пула, и когда это произойдет, я предполагаю, что будет вызвана точка входа приложения, однако, похоже, это не работает.
При развертывании приложения я вижу следующие записи журнала в приемнике «IIS AspNetCore Modeule» V2.
- 28.01.2022 9:25:15 AM - Выполняется задание: Выпуск
- 28.01.2022 9:25:28 AM - Приложение «C:<путь к приложению>» было перезапущено после обнаружения app_offline.htm.
- 28.01.2022 9:25:29 — Приложение «MACHINE/WEBROOT/APPHOST//» закрыто.
- 28.01.2022 9:25:33 утра — Выпуск задания завершен с результатом: успешно
Где
- Сборка микросервиса DevOps — Начало
- Переработка (сборка создает app_offline)
- Отключение API
- Начало сборки микросервиса DevOps — успешно
Я озадачен тем, что нет соответствующего сообщения о запуске API, например: Приложение «C:<путь к приложению>» запущено успешно.
Важно отметить, что это «микросервис» .NET Core API, который не принимает никаких http-запросов. В коде стартап имеет такую конфигурацию.
services.AddHostedService<AuthorizationMessageConsumerService>();
и
public class AuthorizationMessageConsumerService : BackgroundService
Если после каждого развертывания конечная точка /health пингуется, то служба запускается.
Я могу только предположить, что AlwaysRunning просто создал новый поток запросов, но не вызывает никакой точки входа, которая вызывается входящим http-запросом /health.
Я пытаюсь избежать необходимости делать пинг обязательным для сборки и развертывания. Есть ли какие-либо варианты или настройка пингов работоспособности на временных интервалах и после развертывания будет лучшим решением?
решение1
Единственное, чего мне не хватало, это Preload Enabled=true на уровне приложения IIS. Это в основном отправит запрос на запуск вашего приложения после перезапуска из-за развертывания или чего-то еще.