Al crear un servicio el código generado es tal cual este:
1 2 3 4 5 6 7 8 9 10 |
static void Main() { ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new MantenimientoWhoisEs() }; ServiceBase.Run(ServicesToRun); } |
En nuestro caso hay que hacer unos cambios
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
static void Main(<strong>string[] args</strong>) { if (Environment.UserInteractive) { #region DEBUG MiServicio servicio = new MiServicio(); servicio.IniciarServicio(args); //Podemos solicitar que iniquen si quieren parar el servicio: Console.WriteLine("Escribe SI si deseas parar el servicio"); string valor = Console.ReadLine(); if (valor.ToUpper().Equals("SI")) servicio.TerminarServicio(); #endregion } else //Ejecutamos el código por defecto de un servicio { ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new MantenimientoWhoisEs() }; ServiceBase.Run(ServicesToRun); } } |
Y en el código del servicio hay que añadir las funciones que llamamos:
IniciarServicio(args)
TerminarServicio()
que únicamente hacen la llamada a OnStart y OnStop respectivamente
1 2 3 4 5 6 7 8 |
public void IniciarServicio(string[] args) { OnStart(args); } public void TerminarServicio() { OnStop(); } |
Por ultimo hay que cambiar el tipo de proyecto y ya puedes depurarlo como cualquier otra aplicación.