Como en el siguiente enlace, uno puede detener, iniciar y "detener, luego iniciar" un servicio utilizando el código C#.¿Cómo enviar un comando personalizado a un servicio Windows .NET desde el código .NET?
http://www.csharp-examples.net/restart-windows-service/
me han preparado un servicio de .NET que no implementar OnStart
y OnStop
. Sin embargo, tengo que implementar una funcionalidad de "reinicio inteligente" que es más importante que simplemente detener y luego iniciar. Necesito mantener el tiempo de inactividad en solo unos segundos si eso (pero Stop + Start puede tomar minutos en este caso cuando se hace limpiamente, y debo hacerlo limpiamente), y tener algunas partes del sistema disponibles mientras otras se reinician/actualizan .
Resumen a largo plazo: antes de saltar a la implementación de esta funcionalidad OnSmartRestart
, quiero asegurarme de que hay una forma bastante sencilla de invocar esta llamada desde otra aplicación C#.
Esta característica es importante, pero peligrosa. Quiero que quede bastante oculto, algo seguro, también sencillo, y asegúrese de que esto tenga un efecto insignificante en el rendimiento de mi servicio de Windows mientras realiza sus tareas habituales y no reinicia.
Si tengo que sondear algún archivo o abrir un puerto y gastar demasiada CPU en hacer eso, no sería una buena solución. También quiero mantener esto TAN SENCILLO COMO SEA POSIBLE (lo siento por la repetición).
Información adicional: el comando DOS SC.exe también puede enviar estos comandos, permisos de seguridad que permiten ... p. Ej. 'SC CONTROL YOURSERVICENAME 200' – Adrian
Adrian, ¿cómo se llama normalmente usando el comando, si su método es una alternativa? ¿Es "200" en su comando análogo a 222 en el código fuente anterior? – MacGyver
Tenga en cuenta que esto requiere permisos especiales en un entorno de Servidor típico donde su aplicación/sitio .Net se está ejecutando por sí mismo, usuarios de permisos limitados. Puede resolverlo dando permiso a ese usuario para enviar comandos personalizados a este servicio utilizando este método: http://i.imgur.com/tql3pUA.png http://superuser.com/a/315709/101698 –