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);
#endifPor ú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: programacion
// entrada de 3Engine @
13:41
Publicar un comentario en la entrada