Trucos de los servicios Windows

 

El objetivo de este post es simplemente mostrar algunas cosas que es necesario realizar, para poder contar efectivamente con un servicio Windows.

1. Creamos un servicio windows a partir de una plantilla de Visual Studio.

4

2. El código generado incluye un archivo de servicio que hereda de ServiceBase. En este archivo colocamos el código que queremos se ejecute en el servicio windows.

5

3. Si creamos un proyecto de Setup e instalamos el servicio windows. En la consola de los servicios de Windows, no aparecerá el nombre de nuestro servico. Debemos asociarle a nuestro servicio un instalador.

En la vista de diseño de nuestro servicio, damos click derecho y elegimos Agregar instalador.

6

4. Esta acción crea un nuevo archivo que hereada de Instaler:

7

El código por defecto generado es este:

namespace PruebaCronTriggerServicioWindos
{
    [RunInstaller(true)]
    public partial class ProjectInstaller : System.Configuration.Install.Installer
    {
        public ProjectInstaller()
        {
            InitializeComponent();
        }
    }
}

Entonces, se modifica para definir las condiciones de instalación del servicio en la consola de servicios de Windows:

namespace PruebaCronTriggerServicioWindos
{
    [RunInstaller(true)]
    public partial class ProjectInstaller : System.Configuration.Install.Installer
    {
        /// <summary>
        /// Objeto que permite la instalación del servicio
        /// </summary>
        private ServiceInstaller _serviceInstaller;
        /// <summary>
        /// Proceso para la instalación del servicio de órdenes
        /// </summary>
        private ServiceProcessInstaller _serviceProcessInstaller;
        public ProjectInstaller()
        {
            _serviceProcessInstaller = new ServiceProcessInstaller();
            _serviceInstaller = new ServiceInstaller();

            _serviceProcessInstaller.Account = ServiceAccount.LocalSystem;
            _serviceInstaller.StartType = ServiceStartMode.Automatic;
            _serviceInstaller.ServiceName = "Prueba CronTrigger Service";

            Installers.Add(_serviceProcessInstaller);
            Installers.Add(_serviceInstaller);
        }
    }
}

4. El instalador que creamos en el punto 3, tampoco se ejecuta automáticamente, cuando instalamos a través del Setup el servicio Windows.

Esta vez cuando instalamos el servicio windows, en la ruta de instalación, donde el ejecutable queda:

8

Usamos la consola de DOS y ejecutamos como Administrador y utilizamos el comando:

installutil.exe MyNewService.exe

De esta forma podremos ver el servicio en la consola de Windows.

Para desinstalar el servicio, se usa este comando:

InstallUtil.exe /u MyNewService.exe

Comentarios

Entradas populares de este blog

Visual Studio 2012 Backup and Restore bases de datos

Configuración de expresiones en Quartz

Hacer que Windows XP luzca como Windows 7