Creé un servicio de Windows en C#, lo instalé en un servidor y funciona bien.¿Cómo configuro el nombre de un servicio de Windows luego de la instalación (o fácilmente en tiempo de compilación)?
Ahora quiero instalar el mismo servicio nuevamente, pero ejecutando desde un directorio de trabajo diferente, con un archivo de configuración diferente, etc. Por lo tanto, me gustaría tener dos instancias (o más) del mismo servicio ejecutándose simultáneamente . Inicialmente, esto no es posible ya que el instalador se quejará de que ya hay un servicio con el nombre de pila instalado.
Puedo solucionar esto cambiando mi código, estableciendo la propiedad ServiceBase.ServiceName
en un nuevo valor, y luego recompilando y ejecutando InstallUtil.exe nuevamente. Sin embargo, yo preferiría si pudiera establecer el nombre del servicio al momento de la instalación, es decir, idealmente me haría algo así
InstallUtil.exe/i /servicename = "MyService Instancia 2" MiServicio.exe
Si esto no se puede lograr (lo dudo mucho), me gustaría poder insertar el nombre del servicio cuando construya el servicio. Pensé que sería posible usar algún tipo de evento de compilación, usar un ingenioso truco de msbuild o nant o algo similar, pero no tengo ni idea.
Cualquier sugerencia sería muy apreciada.
Gracias por su tiempo.
¿Hay alguna razón por la que no le haya dado a su servicio la posibilidad de ejecutar la lógica comercial en n-hilos para archivos n-config? ¿Así que se guarda el problema de las instancias múltiples desde el principio? – Nate
Hmmm, ese podría ser un buen punto. Pero el servicio se creó hace un año, mucho antes de que me diera cuenta de que me gustaría poder ejecutar varias instancias, por lo que la aplicación no está realmente bien diseñada. Sin embargo, he encontrado una solución y la publicaré en un segundo. – Rune