
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".
- 28/01/2022 9:25:15 - Trabalho em execução: Liberação
- 28/01/2022 9:25:28 - O aplicativo 'C:<caminho para o aplicativo>' foi reciclado após detectar app_offline.htm.
- 28/01/2022 9:25:29 - O aplicativo 'MACHINE/WEBROOT/APPHOST //' foi encerrado.
- 28/01/2022 9:25:33 - Liberação do trabalho concluída com resultado: Bem-sucedido
Onde
- Construção de microsserviço DevOps – Iniciar
- Reciclar (build cria o app_offline)
- Desligamento da API
- 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?
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.