¿Los servicios de Windows no se inician automáticamente después de reiniciar?

10

Tenemos algunos servicios de Windows escritos en .NET. Comienzan bien manualmente dentro de los servicios mmc, pero a pesar de estar configurados en Automático, nunca se inician al encender (o reiniciar) la máquina.

Actualización En el registro de eventos, en lugar de ver "xyz iniciado", junto con todos los demás servicios que comienzan, solo veo "El servicio xyz entró en estado detenido". y un error separado que dice "Se alcanzó un tiempo de espera (30000 milisegundos) mientras se esperaba una respuesta de transacción del servicio slsvc".

Si los inicio manualmente, obtengo una entrada normal en el registro de eventos como se esperaba, y todo está bien, hasta el próximo parche de Windows Update que obliga a reiniciar y todos los servicios están apagados nuevamente.

¿Algunas ideas? Intenté configurarlos en Inicio retrasado sin ninguna diferencia aparente.

James Crowley
fuente
Una vez tuve un problema muy similar con algunas tareas programadas, que eventualmente descubrí que podía recrear cambiando el nombre de usuario que ejecutó la tarea después de haber sido creada. Descubrí que podía solucionar fácilmente el problema simplemente borrando y volviendo a crear las tareas. Definitivamente vale la pena un enfoque similar con esto: intente eliminar el servicio y volver a crearlo. Esto puede ayudar si no está seguro de cómo hacerlo. Para su información, el problema de las tareas programadas ya no ocurre, supongo que alguna actualización en algún momento lo solucionó.
DaveRandom
Me pregunto si no pueden iniciarse porque dependen de otro servicio (que aún no ha comenzado). ¿Puede ver una falla de inicio del servicio dentro del registro del sistema?
recién nacido el
@DaveRandom la reinstalación en realidad ocurre cada vez que implementamos una nueva versión, por lo que no parece que eliminar / agregar resuelva el problema desafortunadamente
James Crowley
Pregunta de @newmanth actualizada con algunos detalles nuevos. Resulta que había entradas del registro de eventos que me había perdido
James Crowley
Noté en su comentario a la respuesta de Rob que .NET es la única dependencia. ¿Sabes si los desarrolladores utilizaron API de terceros en el desarrollo del servicio? Si es así, ¿quizás hay algún mecanismo de licencia que está siendo bloqueado?
newmanth

Respuestas:

3

Hay una solución para eso. Ver: http://support.microsoft.com/kb/922918

La cuestión es que un servicio puede requerir ldap u otro acceso remoto y está experimentando retrasos debido a esto. Esto puede suceder especialmente cuando se inicia el servidor. Al extender el retraso, puede asegurarse de que se iniciará el servicio.

Por supuesto, sería mejor solucionar por qué este servicio tarda tanto en iniciarse. ¿Su entorno no es grande? ¿Tiene problemas de rendimiento en un servicio que está siendo sondeado por el retraso del inicio del servicio?

David Biot
fuente
¿Qué tan específicamente se puede solucionar el inicio de servicio? ¿Hay alguna forma de habilitar el registro detallado?
Kenny Evitt
1

¿Qué quiere decir cuando dice "tenemos algunos servicios de Windows"? ¿Eso me sugiere que son creados internamente por alguien dentro de su organización? Si es así, entonces está en una mejor posición para depurarlos que cualquier otra persona aquí: ¿qué dependencias tienen estos servicios en los componentes de Windows? ?

¿Ha considerado configurar estos servicios como una dependencia del servicio de licencias de software (eso es lo que es slsvc )?

de http://support.microsoft.com/kb/193888

Para crear una nueva dependencia, seleccione la subclave que representa el servicio que desea retrasar, haga clic en Editar y luego en Agregar valor. Cree un nuevo nombre de valor "DependOnService" (sin las comillas) con un tipo de datos de REG_MULTI_SZ y luego haga clic en Aceptar. Cuando aparezca el cuadro de diálogo Datos, escriba el nombre o los nombres de los servicios que prefiere iniciar antes de este servicio con una entrada para cada línea y luego haga clic en Aceptar.

El nombre del servicio que ingresaría en el cuadro de diálogo Datos es el nombre exacto del servicio tal como aparece en el registro bajo la clave Servicios.

Cuando la computadora se inicia, usa esta entrada para verificar que el servicio o servicios enumerados en este valor se inician antes de intentar iniciar el servicio dependiente.

Rob Moir
fuente
Gracias Rob, son internos, pero la única dependencia es .NET Framework, que no creo que se ejecute como un servicio. No requiere nada más al inicio ...
James Crowley
0

Prueba con esto:

Ejecute el siguiente comando para definir un evento desencadenante que se adapte a su entorno. En este ejemplo, el comando determina si se le da una dirección IP a un host y luego inicia o detiene el servicio.

sc triggerinfo w32time start / networkon stop / networkoff

donde w32Time es el nombre de tu servicio

o prueba esto

https://support.microsoft.com/en-us/kb/922918

Fernando Diaz Toledano
fuente