Estoy instalando un servicio de Windows usando las clases ServiceProcessInstaller
y ServiceInstaller
.
He utilizado ServiceProcessInstaller
para configurar el tipo de inicio, el nombre, etc. Pero, ¿cómo configuro la acción de recuperación en Reiniciar?
Sé que puedo hacerlo manualmente después de instalar el servicio yendo a la consola de administración de Servicios y cambiando la configuración en la pestaña de recuperación de las propiedades del servicio, pero ¿hay alguna manera de hacerlo durante la instalación?
process.Close()
línea es inútil.reset= 0
es correcta ereset=0
incorrecta. El uso correcto de los espacios es crucial,reset=
es un argumento, seguido de un espacio, entonces0
.Después de muchos intentos, lo resolví usando la aplicación de línea de comando sc .
Tengo un archivo por lotes con installutil y sc. Mi archivo por lotes es similar a:
installutil.exe "path to your service.exe" sc failure "your service name" reset= 300 command= "some exe file to execute" actions= restart/20000/run/1000/reboot/1000
Si desea la documentación completa del comando sc, siga este enlace: SC.exe: se comunica con el controlador de servicio y los servicios instalados
Nota: Debe agregar un espacio después de cada símbolo igual (=). Ejemplo: reset = 300
fuente
No creo que sea parte de la API .NET, pero esto podría ayudar:
Una extensión de ServiceInstaller que permite la recuperación y la configuración de inicio automático
¡Instale un servicio de Windows de la manera que desee! (Versión C #)
fuente
Encontré el siguiente proyecto que se encarga de estas configuraciones, usando solo código y llamadas a la API de Win:
http://code.msdn.microsoft.com/windowsdesktop/CSWindowsServiceRecoveryPro-2147e7ac
fuente