Makale Özeti

Window Service Setup Project

Makale

WINDOWS SERVICE SETUP PROJECT
İlk olarak visual studio 2010 programımızda yeni bir proje acalım.

Gelen ekrandan .Net Framework 4 secerek Window sekmesi altındaki Windows Service i secelım.Name Location ve Solution bilgileriini doldurduktan sonra OK diyerek proje dosyamızı acalım.
NOT : .Net FrameWork 4 u secmemızın nedeni Crm 2011 de  kod yazmamızdır.

İlk olarak hem windows service için hem de crm 2011 için gerekli olan kutuphaneleri projemıze referans edelim.
Windows Service için gerekli dll ler:
.Net sekmesi altında System.Configuration.Install ve System.ServiceProcess

CRM 2011 için gerekli dll ler:
.Net sekemsi altında System.Runtime.Serilization ,System.ServiceModel
Browse altından sdk nın içerisindeki microsoft.crm.sdk.proxy microsoft.xrm.sdk
 
Daha sonra Solution Explorer dan Service1.cs dosyamızı acalım.Karsımıza Service1.cs[Design]ekranı gelecektir. 
Bu ekrandan to code wiew tıklanarak service.cs (kod sayfası) ye geçilmiş olunur.

Bu class dosyası yukarıda da goruldugu gibi ServiceBase sınıfından kalıtım almıstır.
OnStart ve OnStop olmak uzere 2 metodu vardır.
OnStart servis calısmaya basladıgında calısır.
OnStop işlem bittiğinde calısır.
Şimdi biz 1 saate bir email atacak programımızı yazmaya baslayalım.Bunun için kodumuzu biraz degiştirecegiz.

Projemıze timer ekleyerek işlemimizin 1 saate bir calısmasına ızın verecegız.Goruldugu gıbı OnStart metodunda timer enable ediliyor ve OnStop da disable ediliyor.Şimdi kodlarımızın calısacagı worker adında bir class acarak burada email atan metodumuzu yazalım.


Worker classımızın kurucusunda crm e baglanalım.Ama oncelıkle crm 2011 e baglanmak içinde bir class acalım ve crm e baglanmak için gerekli verileri girelim.


Daha sonra bir metot yazarak bu metot cagrılınca mail atılsın.
Buradakı mail atma crm üzerinden atılacaktır.

 
Metodumuzun içerisindeki kodlar:

Şimdi de service1.cs  sınıfını acarak yazdıgımız metodu calıstıralım.

Kod yazma işlemimiz bitti.Sıra geldi windows service için gerekli işlemleri yapmaya.
Service1.cs[Design] ekranını acalım.Sayfada herhangi bir yere  sag tıklanarak Add Installersecenegini secelım.

Daha sonra karsımıza cıkan ekrandan serviceInstaller1 secılerek properties tool unu acalım.(Properties tool u kapalıysa wiev altından secebilrsiniz.)

Yukarıda goruldugu gıbı ServiceName alanına servisimizin adını girelim ve Startype secenegınıde Automatic yapalım.
Daha sonra projemızın ozellıklerınden Application sekmesinden  Startup Object kısmında programızı secelım.

Projenın ozellıklerıne proje sag tıklanarak Properties secenegınden ulasılabilir.

İşlemlerimiz bittikten sonra projemizi Build edelim.(Ctrl + Shift + B)

Windows service imizi olusturduk.Sıra geldi windows a deploy etmeye.
Windows a ,Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe dosyasını calsıtırarak projemızın exe sının yolunu vererek deploy etmıs olacagız.
Bu işlemi yapmak için komut penceresını Yönetici (Run as Administor)olarak calıstıralım.

Komut penceresinde 2 kere cd.. diyerek C:\ dizinine gelelim.
Komut satırını calıstırdıgımızda kullanıcı bilgileri isteyen ekran cıkar.
 
 
 

Kullanıcı bilgilerini girdikten sonra OK ye tıklayalım.Asagıdakı ekran goruntusunde son satırlara dıkkat edersenız basarıyla install olundugunu yazmaktadır.

Artık servisimizi deploy ettik.Şimdi olusup olusmadıgını bakmak için Hizmetler i acalım ve servisimizi start edelim.
 
NOTLAR

Install Komutu

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\installutil.exe  Users\gokhanm\Downloads\WindowsServiceMailAtmaSolution\WindowsServiceMailAtma\bin\Debug\WindowsServiceMailAtma.exe

UnInstall Komutu

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\installutil.exe  /u Users\gokhanm\Downloads\WindowsServiceMailAtmaSolution\WindowsServiceMailAtma\bin\Debug\WindowsServiceMailAtma.exe

NOT:Uninstall ederken /u yu yazmayı unutmayın.
Mavi ile işaretlenmis kısım projemızın exe sinin bulundugu dizini gosterir.Sizin yapacagınız satırlardakı mavi ile işaretlenmıs kısıma kendi exe nizin yolunu vermektir.
Not:Programımızda birsey degıstırmek ıstıyorsak ılk bas uninstall edelım.İlgili kod degısıklıgını yaptıktan sonra ReBuild edelim.Daha sonra tekrardan install edelim.
NOT: Web Servisi deploy etmek için gerekli kullanıcı izinlerinizin olması gerekmektedir.Yoksa hata verecektir.
NOT: Hata almadan yukledıgınız windows servise Hizmetler (Services) altından ulasabılırsınız.
NOT:Hizmetlere komut penceresinden services.msc satırını calıstırarak ulasabilirsiniz.
Hizmetler altından servisimizi restart etmeyi unutmayalım.
Daha fazla bilgi için http://www.codeproject.com/Articles/3990/Simple-Windows-Service-Sample adresini ziyaret edebilirsiniz.