Puncte:1

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

drapel 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
drapel bd
Mă gândesc că în IIS este necesară o solicitare http pentru a activa codul care pornește domeniul aplicației și în acest caz lucrătorul de fundal.
Puncte:0
drapel bd

Singurul lucru care îmi lipsea a fost Preload Enabled=true la nivelul aplicației IIS. Practic, aceasta va trimite o solicitare de pornire a aplicației după o reciclare din cauza unei implementări sau a oricăror altceva.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.