Koray Kırdinli

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

Windows Servis Deploy Etmek

Arkadaşlar merhaba,
Aşağıdaki kodları bir notepad içerisine alarak uzantısını da .bat olarak kaydedip çalıştırarak windows servisler arasına yükleme yapabilirsiniz.
Silmek için ise : sc delete XXXXXX.exe   komutunu kullanabilirsiniz

 

@echo off

set SERVICE_HOME= “EXE_PATH”
set SERVICE_EXE=XXXXXXXX.exe
set SERVICE_NAME=”XXXXXXXX”

set INSTALL_UTIL_HOME=%windir%\Microsoft.NET\Framework\v2.0.50727

set PATH=%SERVICE_HOME%;%INSTALL_UTIL_HOME%

cd %SERVICE_HOME%

echo Installing Service…

installutil /name=%SERVICE_NAME% %SERVICE_HOME%\%SERVICE_EXE%

echo Done.

Temmuz 30, 2012 Posted by | C# | , , | Yorum bırakın

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
}

Temmuz 6, 2012 Posted by | C# | , , , , | 4 Yorum

Http Web Request ile bir web servis metodunu çağırmak

Merhabalar, bazen asp.net uygulamaları geliştirirken web servisleri proxy sınıfları kullanmadan çağırma ihtiyacı duyabiliriz. İlgili metodu ilgili parametrelerle çağırabiliriz.

ÇAĞRILACAK WEB SERVİS KODU

[WebService(Namespace = “http://tempuri.org/”)]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]

public string GetData(int a)
{
return “Merhaba koray ::::::::::::::: ” + a.ToString();
}
}

ASP.NET ÜZERİNDEN ÇAĞIRMA ve SONUCU ALMA KODU

HttpWebRequest request;
Uri uri = new Uri(“http://localhost:50854/Service1.asmx/GetData?a=5”);
request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = “GET”;
string result = string.Empty;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (var streamReader = new StreamReader(response.GetResponseStream()))
result = streamReader.ReadToEnd();

Buradaki sonuç browserda ne geliyorsa aynen sonuç stringi içerisine yazılacaktır.

<?xml version=”1.0″ encoding=”utf-8″ ?>
  <string xmlns=”http://tempuri.org/“>Merhaba koray ::::::::::::::: 444</string>
Ayrıca dönen response nesnesi içerisinde HTTP Status Code ları da döner.

Temmuz 5, 2012 Posted by | ASP.NET | , , , , | Yorum bırakın