
He codificado un servicio simple de Windows en C#. Si se instala usando installutil
, ¿el servicio estará disponible para todos los usuarios del sistema?
En el caso del sistema operativo del servidor, ¿bajo qué cuenta se debe instalar el servicio para que se inicie automáticamente al iniciar el servidor?
Por favor alumbrame esto.
Respuesta1
Sí. Los servicios ordinarios de Windows son inherentemente globales; no importa qué cuenta se utilizó para instalar el servicio. Hasta donde yo sé, Windows ni siquiera registra esa información.
Es necesario tener privilegios de administrador para poder instalar un servicio.
Para configurar un servicio para que se inicie automáticamente con Windows, configure el tipo de inicio del servicio de forma adecuada. Vea el paso 5 enCómo: agregar instaladores a su aplicación de servicio.
Apéndice:Si el servicio se ejecuta en una cuenta de dominio, en algunas situaciones puede ser necesario configurar el servicio para un inicio retrasado. esta respuestaexplica cómo hacer eso en .NET. Si el servicio se ejecuta normalmente cuando se inicia manualmente pero genera errores del tipo "nombre de usuario o contraseña no válidos" cuando se inicia automáticamente, puede ser útil configurarlo para un inicio retrasado. Todavía no estoy seguro de la causa subyacente del problema.
(Si un servicio utiliza el tipo SERVICE_USER_OWN_PROCESS
o SERVICE_USER_SHARE_PROCESS
, entonces hay instancias separadas del servicio para cada usuario que ha iniciado sesión, y el comportamiento de este tipo de servicio no parece estar adecuadamente documentado. Sin embargo, creo que la respuesta es la misma: el La instalación sigue siendo global y no importa qué cuenta instale el servicio).