Điểm:1

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

lá cờ 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
lá cờ bd
Tôi nghĩ rằng trong IIS, cần có một yêu cầu http để kích hoạt mã khởi động miền ứng dụng và trong trường hợp này là nhân viên nền.
Điểm:0
lá cờ bd

Một điều tôi còn thiếu là Preload Enabled=true ở cấp độ ứng dụng IIS. Về cơ bản, điều đó sẽ gửi yêu cầu khởi động ứng dụng của bạn sau khi tái chế do triển khai hoặc bất kỳ điều gì khác.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.