O pool de aplicativos definido como AlwaysRunning não inicia automaticamente o serviço hospedado

O pool de aplicativos definido como AlwaysRunning não inicia automaticamente o serviço hospedado

Configurei um pool para iniciar automaticamente e nunca dormir. Estou tendo problemas com a inicialização automática. Meu entendimento é que um trabalhador do pool de threads será iniciado após uma reciclagem. Quando isso acontecer, presumo que o ponto de entrada do aplicativo seria chamado, no entanto, isso não parece estar funcionando.

Quando o aplicativo é implantado, vejo as seguintes entradas de log no coletor V2 "IIS AspNetCore Modeule".

  1. 28/01/2022 9:25:15 - Trabalho em execução: Liberação
  2. 28/01/2022 9:25:28 - O aplicativo 'C:<caminho para o aplicativo>' foi reciclado após detectar app_offline.htm.
  3. 28/01/2022 9:25:29 - O aplicativo 'MACHINE/WEBROOT/APPHOST //' foi encerrado.
  4. 28/01/2022 9:25:33 - Liberação do trabalho concluída com resultado: Bem-sucedido

Onde

  1. Construção de microsserviço DevOps – Iniciar
  2. Reciclar (build cria o app_offline)
  3. Desligamento da API
  4. Início da compilação de microsserviços DevOps - bem-sucedido

Estou intrigado por não haver uma mensagem de inicialização da API associada, como - Aplicativo 'C:<caminho para o aplicativo>' iniciado com sucesso.

É importante observar que este é um "microsserviço" da API .NET Core que não aceita nenhuma solicitação http. No código, a startup possui essa configuração.

services.AddHostedService<AuthorizationMessageConsumerService>();

e

public class AuthorizationMessageConsumerService : BackgroundService

Se, após cada implantação, o endpoint /health receber ping, o serviço será iniciado.

Só posso imaginar que AlwaysRunning acabou de criar um novo thread de solicitação, mas não chama nenhum ponto de entrada, que é chamado por uma solicitação HTTP/health recebida.

Estou tentando evitar que o ping seja um requisito de construção e implantação. Há alguma opção ou a configuração de pings de integridade em intervalos cronometrados e pós-implantação seria a melhor solução?

Configuração do IIS

insira a descrição da imagem aqui

Responder1

A única coisa que estava faltando era Preload Enabled=true no nível do aplicativo IIS. Isso basicamente enviará uma solicitação para iniciar seu aplicativo após uma reciclagem devido a uma implantação ou qualquer outra coisa.

informação relacionada