Иногда, если я просто хочу протестировать некоторый код в службе Windows без необходимости его запуска в качестве службы, я изменяю функцию Main ().
Итак, вместо моего Основного существо выглядит так:
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Service1()
};
ServiceBase.Run( ServicesToRun );
Я изменяю это только на
Service1 service = new Service1();
service.Run();
// Put a breakpoint on the following line to always catch
// your service when it has finished its work
System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
И давайте скажем, что мой метод OnStart выглядит примерно так:
protected override void OnStart(string[] args)
{
// code to start your service.
ThreadStart ts = new ThreadStart(Run);
Thread t = new Thread(ts);
t.Start();
}
Таким образом, Run () - это просто метод, который запускает ваш метод OnStart.
Помните, что это не гарантия того, что ваш сервис будет работать правильно после установки в качестве сервиса. Но иногда полезно быстро протестировать некоторый код.