Рейтинг:1

Application Pool set to AlwaysRunning does not Auto Start The Hosted Service

флаг bd

I have configured an pool to auto-start and never sleep. I am having problems with the auto-start. My understanding is that a thread pool worker will be started after a recycle when that happens I would assume the application entry point would be called, however, that does not seem to be working.

When the application is deployed, I see the following log entries under the "IIS AspNetCore Modeule" V2 sink.

  1. 1/28/2022 9:25:15 AM - Running job: Release
  2. 1/28/2022 9:25:28 AM - Application 'C:<path to app>' was recycled after detecting app_offline.htm.
  3. 1/28/2022 9:25:29 AM - Application 'MACHINE/WEBROOT/APPHOST//' has shutdown.
  4. 1/28/2022 9:25:33 AM - Job Release completed with result: Succeeded

Where

  1. DevOps Microservice Build - Start
  2. Recycle (build creates the app_offline)
  3. Api Shutdown
  4. DevOps Microservice Build Start - Succeeded

I am puzzled that there is not a associated api startup message such as - Application 'C:<path to app>' started successfully.

It is important to note that this a .NET Core API "microservice" that does not take any http requests. In code, the startup has this configuration.

services.AddHostedService<AuthorizationMessageConsumerService>();

and

public class AuthorizationMessageConsumerService : BackgroundService

If after every deployment, the /health endpoint is pinged then the service starts up.

I can only guess that AlwaysRunning just created a new request thread but does not call any entry point, which gets called by an incoming http request /health.

I am trying to avoid making a ping a build and deployment requirement. Are there any options or would setting up health pings on timed intervals and post deployment be the best solution?

IIS Configuration

enter image description here

Ross Bush avatar
флаг bd
Я думаю, что в IIS требуется http-запрос для активации кода, запускающего домен приложения и, в данном случае, фонового рабочего.
Рейтинг:0
флаг bd

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

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.