.Net Dillerinde Windows Servisleri Debug Edebilme

Çalıştığım şirkette, projenin bir bölümünde windows servis yazmam gerekti. Her zaman servis dosyalarını debug edememek büyük bir zaman kaybıma sebep olmuştur. Bu durumu çözmek için c# dilinde ki özel sınamaları kullandım.

Daha fazla bilgi için “Preprocessor Directives” linkini okuyabilirsiniz.

Program.cs dosyasının, Main() fonksiyonu içinde; servis dosyasının başlatma işlemleri yer alır. Bu alanı yorumlayıp kendi kodumuzu yazacağız. İsterseniz #if – #else kullanarak, yorumlamadan da halledebilirsiniz.

ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new PortalWindowsServis()
};
ServiceBase.Run(ServicesToRun);

kodunu aşağıda ki gibi değiştiriyoruz.

//ServiceBase[] ServicesToRun;
 //ServicesToRun = new ServiceBase[]
 //{
 //new PortalWindowsServis()
 //};
 //ServiceBase.Run(ServicesToRun);

#if(DEBUG)
 var srv = new PortalWindowsServis();
 srv._timer_Elapsed(null, null);
 #endif

#if – #endif içerisinde, yani debug anında, servisimizin sınıfından yeni bir instance oluşturuyoruz.

Bu instance üzerinde ki, istediğimiz fonksiyonu çağırabiliyoruz.

Ben yukarıda ki kodda, Timer nesnesinin Elapsed anında ki işlemleri için çağırma yaptım.

This entry was posted in Kısa Kısa Yararlı, Visual C# .Net and tagged , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *