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
}

Reklamlar

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

4 Yorum »

  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ü.

    Yorum tarafından Nayinoo | Şubat 14, 2013 | Cevapla

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

    Yorum tarafından koraykirdinli | Mart 7, 2013 | Cevapla

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

    Yorum tarafından salla | Ağustos 19, 2015 | Cevapla

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

    Yorum tarafından dsfhsdjfhksd | Temmuz 26, 2016 | Cevapla


Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s