2012-06-20 7 views
5

Tengo un servicio de Windows personalizado con mi propio controlador de registro, ¿cómo puedo evitar que se detenga cuando reciba el comando de detención del administrador de servicios? Establecí una comunicación de canal entre el servicio y una GUI y deseo detenerlo solo desde la GUI, cuando envío el servicio de Windows, el mensaje "detener" no cuando trato de detenerlo desde el administrador de servicios de Windows. Estoy trabajando en C#Evitar que el administrador de servicios de Windows detenga un servicio C#

+2

¿Qué ocurre cuando la máquina se apaga? ¿El comando para detener el servicio no proviene del administrador de servicios? – Paparazzi

+1

¿No derrota ese tipo de propósito el uso de un servicio de Windows? –

+3

Bueno, no me importa el propósito, solo quiero hacerlo. – AlexandruC

Respuesta

11

¿Responde esto a su pregunta?

http://bytes.com/topic/c-sharp/answers/444965-prevent-service-stopping

establecer la propiedad CanStop a falso. Luego necesitará una aplicación que el usuario pueda usar para solicitar una detención. Esta aplicación luego se comunicaría con su servicio (a través de la comunicación remota, tal vez) y si la condición está permitida, se detendrá. Debería poder hacerlo estableciendo dinámicamente 'CanStop' en verdadero, luego conectándose a usted mismo con la clase ServiceController y emitiendo el comando 'Stop'.

+0

De acuerdo con su comentario encendido no se puede evitar el comando de detención dentro de OnStop. Borré mi respuesta – Paparazzi

+0

perfecto. Justo lo que estaba buscando. – AlexandruC

0

Como alternativa, puede simplemente asegurar la configuración del servicio (modificar el servicio DACL) de modo que solo una cuenta de usuario especial (y quizás SYSTEM) tenga los derechos para detener el servicio e instalar esta cuenta de usuario local especial durante la instalación.

Su aplicación de control puede utilizar las funciones estándar del Administrador de control de servicios con el token de seguridad de este usuario especial y todo funcionará como se espera sin tener que hacer nada inusual.

Cuestiones relacionadas