2011-06-15 203 views
13

Error "ALGUNOS SERVICIOS DETENGAN AUTOMÁTICAMENTE SI NO ESTÁN UTILIZADOS POR OTROS SERVICIOS" al intentar iniciar un servicio de Windows.Algunos servicios se detienen automáticamente si no están siendo utilizados por otros servicios

Tengo un servicio que no utiliza el archivo de configuración de servicio de Windows y utiliza las propiedades estáticas - que funciona bien

Ahora, hago uso de archivo app.config y reconstruir mi proyecto de instalación + el proyecto de servicio. Ahora se instala el servicio y luego tratar de iniciar el servicio - me sale el siguiente error:

Algunos servicios se detienen automáticamente si no no están en uso por otros servicios

servicio inicia sesión como sistema local.

¡Cualquier entrada es bienvenida por favor! Gracias.

Respuesta

29

Esto generalmente es el resultado de una de estas dos cosas: (a) su método OnStart() arroja una excepción o (b) el método OnStart() no está iniciando un hilo para hacer el trabajo.

Si el problema es (a), entonces la solución obvia es depurar el servicio para identificar qué está pasando mal. Como mínimo, coloque un bloque try-catch alrededor del contenido del método OnStart() y registre un error en el registro de eventos del sistema cuando ocurra una excepción. Luego puede ver los detalles en el Visor de eventos de Windows.

Si el problema es (b), entonces necesita crear un hilo que realmente haga algo. El subproceso debe ser un subproceso en primer plano (a diferencia de un subproceso en segundo plano) para evitar que el servicio se cierre. Un método típico OnStart() se ve así:

private System.Threading.Thread _thread; 

protected override void OnStart(string[] args) 
{ 
    try 
    { 
     // Uncomment this line to debug... 
     //System.Diagnostics.Debugger.Break(); 

     // Create the thread object that will do the service's work. 
     _thread = new System.Threading.Thread(DoWork); 

     // Start the thread. 
     _thread.Start(); 

     // Log an event to indicate successful start. 
     EventLog.WriteEntry("Successful start.", EventLogEntryType.Information); 
    } 
    catch (Exception ex) 
    { 
     // Log the exception. 
     EventLog.WriteEntry(ex.Message, EventLogEntryType.Error); 
    } 
} 

private void DoWork() 
{ 
    // Do the service work here... 
} 
+0

También tengo el mismo error y obtuve la solución de esta respuesta ... Gracias. –

+0

sí, encuentro un error en los servicios en el registro de eventos de Windows. – asraful009

+0

Actualiza la respuesta también hermano. Corrija la ortografía de EventLog .... Respuesta útil, gracias @MattDavis –

2

Tengo este error y que era debido a que el disco duro se había llenado. Podría ser cualquier cosa que impida que el servicio se ejecute.

Cuestiones relacionadas