Para iniciar la creacion de nuestro servicio, abrimos un nuevo proyecto de Windows Services y Seleccionamos la opcion de Servicio de Windows como se muestra en la siguiente imagen.
servicio de windows
El resultado sera el que veremos a continuación (la plantilla inicial)
En las propiedades poder cambiar el nombre de este, para este caso le colocaremos MiPrimerServicio
El siguiente pase es la creación de la funcionalidad. Como podemos ver en el código auto generado del servicio existen dos funciones overridden llamadas OnStart and OnStop. La función OnStart se ejecuta cuando se inicia el servicio y la función OnStop cuando el servicio es detenido. En nuestro ejemplo lo que haremos sera escribir un archivo tanto cuando se inicia, como cuando se detiene.
protectedoverridevoid OnStart(string[] args)
{
FileStream fs = new FileStream(@”c:pruebaWindowsService.txt” ,
FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter m_streamWriter = new StreamWriter(fs);
m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
m_streamWriter.WriteLine(” Mensaje: Servicio Iniciado n”);
m_streamWriter.Flush();
m_streamWriter.Close();
}
///<summary>/// El servicio se detiene.
///</summary>protectedoverridevoid OnStop()
{
FileStream fs = new FileStream(@”c:pruebaWindowsService.txt” ,
FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter m_streamWriter = new StreamWriter(fs);
m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
m_streamWriter.WriteLine(” Mensaje: Servicio Detenido n”); m_streamWriter.Flush();
m_streamWriter.Close();
}
Luego hacemos clic derecho en el stage como se muestra en la figura
Una vez Agregado el instalador definimos que sobre que tipo de cuenta correra la aplicacion, estas opciones apareceran en el ServiceProcessIsntaller (primer icono con engranajes). Para mi caso escogí LocalSystem.Una vez realizado este se pocede a la instalacion.INSTALACIÓN:
Primero generamos la aplicacion dando clic a Build y generando de esta forma un archivo .exe, MiPrimerService.exe.
Luego abrimos el Visual Studio Command Prompt y procedemos a hacer la instalacion escribiendo
installutil C:MiPrimerServicebinDebugmcWebService.exePara desistalarla simplemente colocamos: installutil /u C:MiPrimerServicebinDebugmcWebService.exeYa el Servicio podra ser visto en el Adminsitrador de Servicios y lo podremos colocar a correr Ya con esto hemos creado el servicio, podríamos crear también un instalador mas amigable, pero esto lo haré en un próximo post. Para comprobar su funcionamiento vamos a ruta donde dijimos que escribiera el archivo y listo.