Tengo un servicio de Windows personalizado que ejecuto en varias VM de Hyper-V. Las máquinas virtuales se reinician un par de veces por hora como parte de algunas pruebas automáticas que se están ejecutando. El servicio está configurado para inicio automático y casi todo el tiempo, se inicia correctamente."Se ha alcanzado un tiempo de espera mientras se esperaba que se conectara el servicio" después de reiniciar
Sin embargo, tal vez el 5% de las veces, sin ningún patrón que yo pueda discernir, el servicio no se inicia. Cuando se produce un error, me sale un error en el Visor de sucesos diciendo
se alcanzó un tiempo de espera (30000 milisegundos) mientras se espera para el servicio Nombre Mi servicio para conectarse.
Cuando se produce esto, puede iniciar el servicio manualmente, o reiniciar de nuevo, y el servicio se iniciará bien.
Lo que no puedo entender es que el tiempo de espera de 30 segundos no parece estar ocurriendo en mi código. La primera línea del método OnStart() de mi clase de servicio registra "Starting ..." en su log4net log. Cuando el servicio no se inicia, ni siquiera recibo nada registrado, lo que me indica que log4net no puede iniciar sesión por el motivo que sea, o que se agota el tiempo de espera antes de que se llame a OnStart().
El servicio se ejecuta en una variedad de sistemas operativos, desde XP hasta Win7 y 2008R2, y sé que configurar el servicio para el inicio diferido puede solucionar esto para Vista y más tarde, pero parece un truco.
No he podido depurar esto de forma remota debido al hecho de que ocurre de forma tan intermitente y durante el inicio del sistema, y me faltan otras formas de tratar de descubrir qué está pasando. ¿Algunas ideas?
¿Su servicio depende de otros servicios o de alguno de los servicios depende de su servicio para poder comenzar? –
No, es completamente independiente. –
¿Qué tipo de appender está utilizando para log4net? –