c# - inicio - algunos servicios se detienen automáticamente si no son usados por ningún servicio o programa
Algunos Servicios se detienen automáticamente si no están siendo utilizados por otros servicios (3)
Error "ALGUNOS SERVICIOS SE DETENGAN AUTOMÁTICAMENTE SI NO ESTÁN EN USO POR OTROS SERVICIOS" al intentar iniciar un servicio de Windows.
Tengo un servicio que no usa el archivo de configuración del servicio de Windows y usa propiedades estáticas, funciona bien
Ahora, hago uso del archivo app.config y reconstruyo mi proyecto de configuración + el proyecto de servicio. Ahora instalo el servicio y luego trato de iniciarlo. Recibo el siguiente error:
ALGUNOS SERVICIOS SE DETENGAN AUTOMÁTICAMENTE SI NO ESTÁN EN USO POR OTROS SERVICIOS
El servicio inicia sesión como sistema local.
Cualquier entrada es bienvenida por favor! Gracias.
Recibí este error y fue porque el disco duro se había llenado. Podría ser cualquier cosa que impida que el servicio se ejecute.
Tuve el mismo error que se debió a que no se crearon los dll al ejecutar installUtil.cmd en mi serviceInstaller.msi. Para solucionar este problema, tuve que incluir uno de estos => <File Id="Interception" Source="$(var.SourceDir)/Microsoft.Practices.Unity.Interception.dll" />
para cada dll que esperaba en mi proyecto y colóquelo en mi archivo Service.wxs. Like this>> <Fragment><DirectoryRef Id="ApplicationDirectory"><Component Id="ServiceID" Guid="$(var.ServiceGuid)"> *here* <closing tags...>
. Y asegúrese de que todas las DLL estén incluidas en los comandos de copia x de los instaladores :)
¡Espero que esto ayude!
Esto generalmente es el resultado de una de estas dos cosas: (a) su método OnStart()
está lanzando una excepción o (b) el método OnStart()
no está OnStart()
un hilo para que funcione.
Si el problema es (a), entonces la solución obvia es depurar el servicio para identificar qué está 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 se produzca una excepción. A continuación, 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 hilo debe ser un hilo de primer plano (en lugar de un hilo de fondo) para evitar que el servicio se cierre. Un OnStart()
típico de 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...
}