Hoy vamos a realizar un pequeño y rápido repaso de cómo crear un Servicio de Windows, en nuestro caso, desde Visual Studio 2008.
Tomaremos como base el siguiente enlace oficial de microsoft: http://msdn.microsoft.com/es-es/library/9k985bc9(v=VS.90).aspx
Creando Windows Service
En primer lugar, seleccionaremos el tipo de plantilla Windows Service o Servicio de Windows para nuestro proyecto.
Una vez generado el proyecto, Visual Studio generará a partir de plantilla los siguientes archivos:
- Service1.cs (renombrado por manías del guión como Service.cs)
- Program.cs
En la clase Service.cs (recordemos que originalmente se llamaba Service1.cs), creamos los siguientes métodos:
- onstart
- onstop
- oncontinue
#region "Service Methods" protected override void OnStart(string[] args) { Console.WriteLine("Inicio servicio"); } protected override void OnStop() { Console.WriteLine("Fin servicio"); } protected override void OnContinue() { Console.WriteLine("Servicio en ejecución"); } #endregion "Service Methods"
En el ejemplo simplemente escribimos por consola una traza del método que estamos ejecutando.
Llegados a este punto, el servicio ya podría arrancar, pero dependiendo de la lógica que deba implementar el servicio, tomaremos diferentes formas de mantener vivo el servicio:
– Ejemplo 1: Queremos que nuestro servicio se mantenga a la escucha de recibir mensajes de fuentes externas, el pseudocódigo sería algo así:
while (true) { listener.receive(); }
– Ejemplo 2: Queremos que nuestro servicio ejecute tareas cada x tiempo, para lo cual necesitaríamos un Timer para gestionar la ejecución temporal de dichas tareas. En futuros posts crearemos un ejemplo de este tipo de servicios de windows con timer.
Instalando Windows Service
Vamos a preparar ahora nuestro servicio de windows para que podamos instalarlo, para ello:
1. Añadimos los servicios de instalación, clickando sobre el botón derecho sobre el diseñador de Service y clickamos en «Add Installer» o «Añadir Instalador«.
2. El paso anterior nos genera un nuevo archivo ProjectInstaller.cs como el de la imagen siguiente, agregando 2 nuevos componentes.
En las propiedades de ambos componentes del servicio podremos editar el nombre del servicio, el tipo de arranque (manual, automático o deshabilitado), la cuenta con la que se ejecutará el servicio, etc.
Por último, vamos a preparar la Instalación del servicio de Windows
Crearnos 2 archivos .bat uno para instalación y otro desinstalación, que ejecutarán el comando InstallUtil
Por ejemplo para instalar y desinstalar respecticamente
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil «C:\Inetpub\wwwroot\myservice\bin\Release\myservice.exe»pause
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil -u «C:\Inetpub\wwwroot\myservice\bin\Release\myservice.exe»pause
¡Te lo agradecemos!