visual studio servicio services examples crear c# windows-services

c# - servicio - windows service visual studio 2015



¿Es posible registrar quién inició o detuvo un servicio de Windows? (4)

Tengo algunos servicios de Windows escritos en C #. Cuando alguien detiene o inicia el servicio, me gustaría poder determinar quién era y registrar esa información.

Intenté registrar Environment.UserName pero eso se evalúa como SYSTEM incluso en mi máquina local.

Además, por el momento estos servicios se están ejecutando en el servidor de Windows 2000.


Dentro del Visor de eventos (Panel de control | Herramientas administrativas | Visor de eventos) en la pestaña Sistema, el Administrador de control de servicios registra quién inició y detuvo cada evento. Acabo de probar esto yo mismo y he visto los resultados. Esto me lleva a dos cosas:

  1. Es posible que pueda consultar o enlazar esos eventos desde el Administrador de control de servicios a medida que ocurren, o
  2. Definitivamente puede simplemente consultar el registro del "Sistema" del Visor de Eventos para buscar esos eventos para su Servicio.

Espero que te lleve a tu solución.


Probablemente no hay una manera. Cualquiera de las formas normales de .NET que obtenga en el usuario del entorno devolverá al usuario cuyas credenciales ejecuta el servicio (que normalmente será SISTEMA, SERVICIO LOCAL, SERVICIO DE RED, etc.).

Cómo probablemente lo haría es sondear el sistema para ver si un usuario está conectado, y asumir que el usuario lo hizo. Por supuesto, esto descuente servicios que el sistema cierra por alguna razón (presumiblemente su servicio no lo sería), y solo puede ayudarlo a reducirlo si más de un usuario está conectado a la vez (pero entonces, podría siempre registra ambos).



  1. Simplemente abra el Visor de eventos (menú Inicio -> Buscar "Evento" Visor de eventos vendrá, ábralo)
  2. Expanda ''Registro de Windows'' en el menú izquierdo del visor de eventos.
  3. Haga clic en la aplicación. (Mostrará el error de su aplicación con la descripción en la pestaña ''general''.
  4. Nuevamente intente iniciar su servicio y desde el visor de eventos vea cuál es la causa exacta para detenerse brevemente en la pestaña ''general''.