Koray Kırdinli

Yazılım ve İş Yaşamı Hakkında Paylaşımlar

Windows servis deploy etmeden debug ve test etmek

Öncelikle windows servis nedir kısa bir tanımını paylaşayım sizinle :

Windows servisleri, işletim sisteminde arka planda çalışan, kullanıcı ile etkilişimde bulunduğu herhangibir arayüze sahip olmayan, kaynakların izlenmesi, system olaylarının log olarak tutulması, network erişimlerinin izlenmesi, veritabanları üzerindeki transaction’ların izlenmesi, sistem performansına ati bilgilerin toplanması, sistem hatalarının (system exceptions) , başarısız program denemelerin (failure) vb. gibi geri plan işlemlerinin takip edilmesinde kullanılan, sisteme kayıt edilmiş (register), çalıştırılabilir nesnelerdir.(bkz:yazılım akademi)

Bir windows servis geliştirdiğimizde start dediğimizde aşağıdaki gibi bir hatayla karşı karşıya kalırız. Bu hatayı almamak için ise windows servisi install etmemiz lazımdır ki bu da çok sıkıcı bir süreç. Çünkü kodda her değişiklik yapıldığında install etmek çok maliyetli olacaktır.

“Cannot start service from the command line or a debugger. A Windows Service must first be installed (using installutil.exe) and then started with the ServerExplorer, Windows Services Administrative tool or the NET START command.”

Bunu engellemek için servisin Main metodunu aşağıdaki gibi düzenleyip, Servise Process isminde public bir metod ekliyoruz.Bu public metodu da istediğiniz servis metodunu çağırmanızı sağlıyor. OnStart veya OnStop vs.

static void Main()
{
#if(!DEBUG)
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new MyService()
};
ServiceBase.Run(ServicesToRun);
#else
Service1 myServ = new Service1();
myServ.Process();
#endif
}

July 6, 2012 - Posted by | C# | , , , ,

4 Comments »

  1. hocam hata veriyor.
    şöyleki

    #else
    Service1 myServ = new Service1();
    myServ.Process();
    #endif

    satırında => myServ.Progcess();
    satırında hata veriyor. acaba kütüphane eksiğimi var ? anlamadım bir türlü.

    Comment by Nayinoo | February 14, 2013 | Reply

  2. Tam olarak ne hatası veriyor paylaşabilir misin?

    Comment by koraykirdinli | March 7, 2013 | Reply

  3. Admin Kodu Copy Paste yapmış ama denememiş:)

    Comment by salla | August 19, 2015 | Reply

  4. mal bu insanlar lan process metodu nerde a.q.

    Comment by dsfhsdjfhksd | July 26, 2016 | Reply


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s