O serviço do Windows não é iniciado automaticamente se o Virtual Server iniciar a partir do estado desprovisionado

1

Eu tenho um aplicativo de servidor em execução em uma máquina virtual hospedada no Azure. Esta aplicação é composta por quatro serviços do Windows.

Toda noite eu encerro (desprovisiono) a máquina virtual.

Quando eu reinicio a máquina, um dos quatro serviços falha ao iniciar. Geralmente é o mesmo.

Se eu reiniciar a máquina, todos os quatro serviços serão iniciados. Se eu parar a máquina (deixando-a provisionada) e depois reiniciá-la, todos os quatro serviços serão iniciados. É somente quando a máquina inicia a partir do início desprovisionado que o serviço falha ao iniciar.

Eu examino os logs de eventos e vejo o seguinte erro:

A timeout was reached (30000 milliseconds) while waiting for the service to connect

Eu tentei configurar as opções Recuperação do serviço para que ele Reinicie o Serviço depois de falhar, com Ativar ações para paradas com erros: marcado. Isso não tem efeito.

Meu código de serviço é um aplicativo .NET. Implementei a criação de log e fiz o log em um arquivo assim que ele é iniciado. Quando não é iniciado, nenhuma entrada de log é gravada. É como se o aplicativo falhasse completamente no carregamento.

Existe uma maneira recomendada de abordar esse problema? (isto é, diagnosticar a causa raiz e impedir que isso aconteça).

    
por Andrew Shepherd 12.10.2018 / 08:49

1 resposta

3

Defina o tipo de inicialização do serviço como "Automatic (Delayed start)". Como o serviço executa .Net e não registra nada dentro dos 30 segundos, o tempo limite indica claramente que os conjuntos .Net não foram carregados no tempo (inicialização a frio). Infelizmente, você não tem controle sobre isso, então sua melhor aposta é atrasar sua inicialização. Sempre trabalhou para mim!

    
por 13.10.2018 / 02:20