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).