Service Main Metodu
Service projesi oluşturunca Main metodu olarak şuna benzer bir kod üretilir.
ServiceBase Sınıfı yazısına taşıdım.
ServiceController Sınıfı
Sınıfı kullanmak için şu satır dahil edilir. Servisi durdurup başlatmak için Local Administrator olmak gerekir.
Constructor
Sınıf şöyle yaratılır.
Şöyle yaparız.
Şöyle yaparız.
Restart İşlemi
Eğer service herhangi bir hata ile karşılaşırsa Windows ayarının yapılması gerekir. Servisimize sağ tıklayıp Properties->Recovery->Restart after failure on first failure ayarı yapılır.
Kod içinde ise Environment.Exit (1) ile çıkılır. Dolayısıyla Windows servisi tekrar başlatır.
sc komutu
Servislerle çalışan kişinin sc komutunu bilmesi gerekir. Komut şöyle bir yapıya sahiptir.
Servisin bağımlı olduğu diğer servisler şöyle tanımlanır
Installer Sınıfı yazısına taşıdım.
Service projesi oluşturunca Main metodu olarak şuna benzer bir kod üretilir.
static partial class Program
{
static void Main(string[] args)
{
RunAsService();
}
static void RunAsService()
{
ServiceBase[] servicesToRun;
servicesToRun = new ServiceBase[] { new MainService() };
ServiceBase.Run(servicesToRun);
}
}
ServiceBase sınıfı verilen servisi başlatır. Bu sınıfın detayları aşağıda. Bazen daha kolay geliştirme yapmak için şöyle kodlar kullanılıyor. Böylece service bir konsol uygulaması gibi geliştirilebiliyor.static void Main(string[] args)
{
TestService = new TestService ();
#if DEBUG
TestService.StartWork();
#else
System.ServiceProcess.ServiceBase.Run(TestService );
#endif
}
ServiceBase SınıfıServiceBase Sınıfı yazısına taşıdım.
ServiceController Sınıfı
Sınıfı kullanmak için şu satır dahil edilir. Servisi durdurup başlatmak için Local Administrator olmak gerekir.
using System.ServiceProcess.ServiceController
Kullanıcının Local Administrator olup olmadığı şöyle kontrol edilebilir.net localgroup Administrators
net localgroup Administrators /add user
Sınıf şöyle yaratılır.
ServiceController service = new ServiceController(serviceName);
Uzaktaki bir makine için şöyle yaparız.var sc = new ServiceController("W3SVC", "10.201.58.114");
Start metoduŞöyle yaparız.
sc.Start();
sc.WaitForStatus(ServiceControllerStatus.Running);
Stop metoduŞöyle yaparız.
sc.Stop();
sc.WaitForStatus(ServiceControllerStatus.Stopped);
Restart İşlemi
Eğer service herhangi bir hata ile karşılaşırsa Windows ayarının yapılması gerekir. Servisimize sağ tıklayıp Properties->Recovery->Restart after failure on first failure ayarı yapılır.
Kod içinde ise Environment.Exit (1) ile çıkılır. Dolayısıyla Windows servisi tekrar başlatır.
sc komutu
Servislerle çalışan kişinin sc komutunu bilmesi gerekir. Komut şöyle bir yapıya sahiptir.
sc [Servername] Command Servicename [Optionname= Optionvalue...]
depend seçeneğiServisin bağımlı olduğu diğer servisler şöyle tanımlanır
sc [ServerName] config ServiceName depend=servicetoDependOn
Installer SınıfıInstaller Sınıfı yazısına taşıdım.
Hiç yorum yok:
Yorum Gönder