3ENGINE  programmer :-)

viernes 5 de marzo de 2010

Debug desde VS.NET de un servicio Windows

A veces nos interesa hacer debug de un servicio de windows. Pero normalmente esto se hace complicado porque un servicio de windows no corre dentro de Visual Studio .NET porque es necesario instalarlo y registrarlo (installutil.exe y NET START).

Una manera cómoda y sencilla es añadir al metodo estático Main una directiva de compilación para diferenciar el modo debug del modo release, de manera que si estamos en debug iniciar el servicio Windows como una aplicación normal:

#if (!DEBUG)
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] { new MiWService() };
ServiceBase.Run(ServicesToRun);
#else
MiWService service = new MiWService();
service.Init();
System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
#endif


Por último, en la clase de tipo MiWService (que hereda de ServiceBase) escribir un método Init() que llame al método proteced OnStart():

public void Init()
{
this.OnStart(null);
}


Para información mas detallada consultar aquí

Etiquetas:


Comentarios:

Publicar un comentario en la entrada





<< Página principal


   

Categorias

Archivos

 
Feed Blog suscríbete!      Contacto     Terminos & Condiciones © 3ENGINE 2007