Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Bu makale .NET'te barındırılan hizmetler için geçerli değildir. ve Çalışan Hizmeti şablonunu kullanan Microsoft.Extensions.Hosting.BackgroundService Windows hizmetleriyle ilgili en son içerik için bkz:
Windows Hizmeti uygulamaları, System.ServiceProcess.ServiceBase sınıfından türeyen bir sınıfa dayanır. Bu sınıftaki yöntemleri geçersiz kılar ve hizmetinizin nasıl davrandığını belirlemek için işlevleri tanımlarsınız.
Hizmet oluşturmayla ilgili ana sınıflar şunlardır:
System.ServiceProcess.ServiceBase — Bir hizmet oluştururken sınıfından ServiceBase yöntemleri geçersiz kılar ve hizmetinizin bu devralınan sınıfta nasıl çalıştığını belirlemek için kodu tanımlarsınız.
System.ServiceProcess.ServiceProcessInstaller ve System.ServiceProcess.ServiceInstaller —Hizmetinizi yüklemek ve kaldırmak için bu sınıfları kullanırsınız.
Ayrıca, adlı ServiceController bir sınıf hizmetin kendisini işlemek için kullanılabilir. Bu sınıf bir hizmetin oluşturulmasına dahil değildir, ancak hizmeti başlatmak ve durdurmak, komutlar geçirmek ve bir dizi numaralandırma döndürmek için kullanılabilir.
Hizmetinizin Davranışını Tanımlama
Hizmet sınıfınızda, Services Control Manager'da hizmetinizin durumu değiştirildiğinde ne olacağını belirleyen temel sınıf işlevlerini geçersiz kılarsınız. sınıfı ServiceBase , özel davranış eklemek için geçersiz kılabileceğiniz aşağıdaki yöntemleri kullanıma sunar.
| Yöntem | Şunun için geçersiz kıl: |
|---|---|
| OnStart | Hizmetiniz çalışmaya başladığında gerçekleştirilecek eylemleri belirtin. Hizmetinizin yararlı işler yapabilmesi için bu yordamda kod yazmanız gerekir. |
| OnPause | Hizmetiniz duraklatıldığında ne olacağını belirtin. |
| OnStop | Hizmetiniz çalışmayı durdurduğunda ne olacağını belirtin. |
| OnContinue | Hizmetiniz duraklatıldıktan sonra normal çalışmaya devam ettiğinde ne olacağını belirtin. |
| OnShutdown | Hizmetiniz o sırada çalışıyorsa, sisteminizin kapanmadan hemen önce ne olacağını belirtin. |
| OnCustomCommand | Hizmetiniz özel bir komut aldığında ne olacağını belirtin. Özel komutlar hakkında daha fazla bilgi için bkz. MSDN online. |
| OnPowerEvent | Düşük pil veya askıya alınmış işlem gibi bir güç yönetimi olayı alındığında hizmetin nasıl yanıt vermesi gerektiğini belirtin. |
Uyarı
Bu yöntemler, hizmetin yaşam süresi boyunca geçtiği durumları temsil eder; hizmet bir durumdan diğerine geçiş yapılır. Örneğin, OnContinue çağrılmadan önce bir OnStart komutuna hizmetin yanıt vermesini hiçbir zaman sağlayamazsınız.
İlgi çekici başka birkaç özellik ve yöntem vardır. Bunlar şunları içerir:
Run sınıfındaki ServiceBase yöntemi. Bu, hizmetin ana giriş noktasıdır. Windows Hizmeti şablonunu kullanarak bir hizmet oluşturduğunuzda, hizmeti çalıştırmak için uygulamanızın
Mainyöntemine kod eklenir. Bu kod şuna benzer:ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new Service1() }; Run(ServicesToRun);Dim ServicesToRun() As System.ServiceProcess.ServiceBase ServicesToRun = New System.ServiceProcess.ServiceBase() {New Service1()} System.ServiceProcess.ServiceBase.Run(ServicesToRun)Uyarı
Bu örneklerde, uygulamanızın içerdiği her hizmetin eklenebileceği ve ardından tüm hizmetlerin birlikte çalıştırılabildiği türünde ServiceBasebir dizi kullanılır. Ancak yalnızca tek bir hizmet oluşturuyorsanız, diziyi kullanmamayı seçebilir ve yalnızca öğesinden ServiceBase devralan yeni bir nesne bildirebilir ve ardından çalıştırabilirsiniz. Bir örnek için bkz . Nasıl yapılır: Hizmetleri Program Aracılığıyla Yazma.
ServiceBase sınıfında bir dizi özellik. Bunlar hizmetinizde hangi yöntemlerin çağrılabileceğini belirler. Örneğin, CanStop özelliği
trueolarak ayarlandığında, hizmetinizdeki OnStop yöntemi çağrılabilir. CanPauseAndContinue özelliğitrueolarak ayarlandığında, OnPause ve OnContinue yöntemleri çağrılabilir. Bu özelliklerden birini olaraktrueayarladığınızda, ilişkili yöntemler için işlemeyi geçersiz kılmanız ve tanımlamanız gerekir.
Ayrıca, mevcut bir hizmetle iletişim kurmak ve bu hizmetin davranışını denetlemek için adlı ServiceController bir bileşeni de kullanabilirsiniz.