ServiceBase Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir hizmet uygulamasının parçası olarak var olacak bir hizmet için temel sınıf sağlar. ServiceBase yeni bir hizmet sınıfı oluşturulurken öğesinden türetilmelidir.
public ref class ServiceBase : System::ComponentModel::Component
public class ServiceBase : System.ComponentModel.Component
type ServiceBase = class
inherit Component
Public Class ServiceBase
Inherits Component
- Devralma
- Türetilmiş
Açıklamalar
Bir hizmet uygulamasında hizmet sınıfınızı tanımlarken öğesinden ServiceBase türetilir. Tüm yararlı hizmetler ve OnStop yöntemlerini geçersiz kılarOnStart. Ek işlevsellik için, hizmet durumundaki değişikliklere yanıt olarak ve'yi belirli bir davranışla geçersiz kılabilirsiniz OnPauseOnContinue .
Hizmet, kullanıcı arabirimini desteklemeyen ve oturum açmış kullanıcı hesabı altında çalışmayabilen uzun süre çalışan bir yürütülebilir dosyadır. Hizmet, bilgisayarda herhangi bir kullanıcı oturum açmadan çalıştırılabilir.
Varsayılan olarak, hizmetler Sistem hesabı altında çalışır ve bu, Yönetici hesabıyla aynı değildir. Sistem hesabının haklarını değiştiremezsiniz. Alternatif olarak, hizmetin altında çalıştırılacağı bir kullanıcı hesabı belirtmek için de ServiceProcessInstaller kullanabilirsiniz.
Yürütülebilir dosya birden fazla hizmet içerebilir ancak her hizmet için ayrı ServiceInstaller bir hizmet içermelidir. Örnek ServiceInstaller , hizmeti sisteme kaydeder. Yükleyici ayrıca her hizmeti hizmet komutlarını kaydetmek için kullanabileceğiniz bir olay günlüğüyle ilişkilendirir. Yürütülebilir main()
dosyadaki işlevi hangi hizmetlerin çalıştırılması gerektiğini tanımlar. Hizmetin geçerli çalışma dizini, yürütülebilir dosyanın bulunduğu dizin değil sistem dizinidir.
Bir hizmeti başlattığınızda, sistem yürütülebilir dosyayı bulur ve yürütülebilir dosyanın içinde yer alan bu hizmet için yöntemini çalıştırır OnStart . Ancak, hizmetin çalıştırılması yürütülebilir dosyayı çalıştırmakla aynı değildir. Yürütülebilir dosya yalnızca hizmeti yükler. Hizmete Hizmet Denetim Yöneticisi aracılığıyla erişilir (örneğin, başlatıldı ve durduruldu).
Hizmette ServiceBase Start'ı ilk kez çağırdığınızda yürütülebilir dosya türetilmiş sınıfın oluşturucusunu çağırır. OnStart Oluşturucu yürütülür hemen sonra komut işleme yöntemi çağrılır. Oluşturucu, hizmet ilk kez yüklendikten sonra yeniden yürütülmediğinden, oluşturucu tarafından gerçekleştirilen işlemeyi tarafından OnStartgerçekleştirilen işlemden ayırmak gerekir. tarafından OnStop yayınlanabilir tüm kaynaklar içinde OnStartoluşturulmalıdır. Kaynakları oluşturucuda oluşturmak, hizmet kaynakları serbest bıraktıktan sonra OnStop yeniden başlatılırsa bunların düzgün oluşturulmasını engeller.
Hizmet Denetim Yöneticisi (SCM), hizmetle etkileşime geçmek için bir yol sağlar. SCM'yi kullanarak Başlat, Durdur, Duraklat, Devam et veya özel komutları hizmete geçirebilirsiniz. SCM, hizmetin Durdur, Duraklat veya Devam Et komutlarını CanStop kabul edip etmediğini belirlemek için ve CanPauseAndContinue değerlerini kullanır. SCM'nin bağlam menülerinde Durdur, Duraklat ve Devam Et yalnızca ilgili özellik CanStop veya CanPauseAndContinue hizmet sınıfındaysa true
etkinleştirilir. Etkinleştirilirse, komut hizmete geçirilir ve OnStop, OnPauseveya OnContinue çağrılır.
CanStop, CanShutdownveya CanPauseAndContinue isefalse
, yöntemini uygulamış olsanız bile ilgili komut işleme yöntemi (örneğinOnStop) işlenmez.
SCM'nin ServiceController bir kullanıcı arabirimi kullanarak ne yaptığını program aracılığıyla yapmak için sınıfını kullanabilirsiniz. Konsolunda bulunan görevleri otomatikleştirebilirsiniz. , CanStopCanShutdownveya CanPauseAndContinue ise true
ancak karşılık gelen bir komut işleme yöntemi (örneğinOnStop) uygulamadıysanız sistem bir özel durum oluşturur ve komutu yoksayar.
içinde , OnStopveya başka bir yöntem ServiceBaseuygulamanız OnStartgerekmez. Ancak, hizmetin davranışı içinde OnStartaçıklanmıştır, bu nedenle en azından bu üye geçersiz kılınmalıdır. Yürütülebilir main()
dosyanın işlevi, yöntemini çağırarak hizmeti Hizmet Denetim Yöneticisi ile yürütülebilir dosyaya Run kaydeder.
ServiceName yöntemine Run geçirilen nesnenin ServiceBase özelliği, o hizmetin hizmet yükleyicisinin özelliğiyle eşleşmelidirServiceName.
InstallUtil.exe
hizmetini kullanarak sisteminize hizmet yükleyebilirsiniz.
Not
Hizmet çağrılarının bildirimini almak için Uygulama olay günlüğü dışında bir günlük belirtebilirsiniz, ancak AutoLog ne ne de EventLog özelliği özel bir günlüğe yazabilir. Otomatik günlüğe false
kaydetmeyi kullanmak istemiyorsanız olarak ayarlayınAutoLog.
Oluşturucular
ServiceBase() |
ServiceBase sınıfının yeni bir örneğini oluşturur. |
Alanlar
MaxNameLength |
Hizmet adı için en büyük boyutu gösterir. |
Özellikler
AutoLog |
Başlat, Durdur, Duraklat ve Devam komutlarının olay günlüğünde raporlanıp rapor edilmeyeceğini gösterir. |
CanHandlePowerEvent |
Hizmetin bilgisayar güç durumu değişikliklerinin bildirimlerini işleyip işleyemeyeceğini belirten bir değer alır veya ayarlar. |
CanHandleSessionChangeEvent |
Hizmetin bir Terminal Server oturumundan alınan oturum değişikliği olaylarını işleyip işleyemeyeceğini belirten bir değer alır veya ayarlar. |
CanPauseAndContinue |
Hizmetin duraklatılıp sürdürülemeyeceğini belirten bir değer alır veya ayarlar. |
CanRaiseEvents |
Bileşenin bir olay oluşturup oluşturamayacağını belirten bir değer alır. (Devralındığı yer: Component) |
CanShutdown |
Sistem kapatılırken hizmete bildirim gönderilip bildirilmeyeceğini belirten bir değer alır veya ayarlar. |
CanStop |
Hizmetin başlatıldıktan sonra durdurulup durdurulamayacağını belirten bir değer alır veya ayarlar. |
Container |
öğesini IContainer içeren öğesini Componentalır. (Devralındığı yer: Component) |
DesignMode |
öğesinin şu anda tasarım modunda olup olmadığını Component gösteren bir değer alır. (Devralındığı yer: Component) |
EventLog |
Başlat ve Durdur gibi hizmet komut çağrılarının bildirimini Uygulama olay günlüğüne yazmak için kullanabileceğiniz bir olay günlüğü alır. |
Events |
Bu Componentöğesine eklenen olay işleyicilerinin listesini alır. (Devralındığı yer: Component) |
ExitCode |
Hizmetin çıkış kodunu alır veya ayarlar. |
ServiceHandle |
Hizmetin hizmet denetim tutamacını alır. |
ServiceName |
Hizmeti sisteme tanımlamak için kullanılan kısa adı alır veya ayarlar. |
Site |
öğesini alır veya ayarlar ISiteComponent. (Devralındığı yer: Component) |
Yöntemler
CreateObjRef(Type) |
Uzak bir nesneyle iletişim kurmak için kullanılan bir ara sunucu oluşturmak için gereken tüm ilgili bilgileri içeren bir nesne oluşturur. (Devralındığı yer: MarshalByRefObject) |
Dispose() |
Component tarafından kullanılan tüm kaynakları serbest bırakır. (Devralındığı yer: Component) |
Dispose(Boolean) |
tarafından kullanılan kaynakları (bellek dışında) atılır ServiceBase. |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetLifetimeService() |
Geçersiz.
Bu örnek için yaşam süresi ilkesini denetleen geçerli yaşam süresi hizmet nesnesini alır. (Devralındığı yer: MarshalByRefObject) |
GetService(Type) |
veya tarafından ComponentContainersağlanan bir hizmeti temsil eden bir nesnesi döndürür. (Devralındığı yer: Component) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
InitializeLifetimeService() |
Geçersiz.
Bu örneğin yaşam süresi ilkesini denetlemek için bir yaşam süresi hizmet nesnesi alır. (Devralındığı yer: MarshalByRefObject) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
MemberwiseClone(Boolean) |
Geçerli MarshalByRefObject nesnenin sığ bir kopyasını oluşturur. (Devralındığı yer: MarshalByRefObject) |
OnContinue() |
Türetilmiş bir sınıfta uygulandığında, OnContinue() Service Control Manager (SCM) tarafından hizmete bir Continue komutu gönderildiğinde çalışır. Bir hizmet duraklatıldıktan sonra normal çalışmaya devam ettiğinde gerçekleştirecek eylemleri belirtir. |
OnCustomCommand(Int32) |
Türetilmiş bir sınıfta uygulandığında, OnCustomCommand(Int32) Service Control Manager (SCM) hizmete özel bir komut geçirdiğinde yürütülür. Belirtilen parametre değerine sahip bir komut oluştuğunda gerçekleştirecek eylemleri belirtir. |
OnPause() |
Türetilmiş bir sınıfta uygulandığında, Hizmet Denetim Yöneticisi (SCM) tarafından hizmete bir Duraklat komutu gönderildiğinde yürütülür. Bir hizmet duraklatıldığında gerçekleştirecek eylemleri belirtir. |
OnPowerEvent(PowerBroadcastStatus) |
Türetilmiş bir sınıfta uygulandığında, bilgisayarın güç durumu değiştiğinde yürütülür. Bu, askıya alma moduna geçtiklerinde dizüstü bilgisayarlar için geçerlidir ve bu, sistemin kapatılmasıyla aynı değildir. |
OnSessionChange(SessionChangeDescription) |
Terminal Server oturumundan bir değişiklik olayı alındığında yürütülür. |
OnShutdown() |
Türetilmiş bir sınıfta uygulandığında, sistem kapatılırken yürütülür. Sistemin kapatılmasından hemen önce ne olması gerektiğini belirtir. |
OnStart(String[]) |
Türetilmiş bir sınıfta uygulandığında, Hizmet Denetim Yöneticisi (SCM) tarafından hizmete bir Başlat komutu gönderildiğinde veya işletim sistemi başlatıldığında (otomatik olarak başlayan bir hizmet için) yürütülür. Hizmet başlatıldığında gerçekleştirecek eylemleri belirtir. |
OnStop() |
Türetilmiş bir sınıfta uygulandığında, Hizmet Denetim Yöneticisi (SCM) tarafından hizmete bir Stop komutu gönderildiğinde yürütülür. Bir hizmet çalışmayı durdurduğunda gerçekleştirecek eylemleri belirtir. |
RequestAdditionalTime(Int32) |
Bekleyen bir işlem için ek süre istemektedir. |
RequestAdditionalTime(TimeSpan) |
Bu yöntem OnStart, OnStop, OnPause veya OnContinue'dan çağrıldığında, hizmetin yanıt vermiyor olarak işaretlenmesini önlemek için belirtilen bekleme ipucu Hizmet Denetim Yöneticisi'ne geçirilir. |
Run(ServiceBase) |
Hizmet için yürütülebilir dosyayı Service Control Manager'a (SCM) kaydeder. |
Run(ServiceBase[]) |
Yürütülebilir dosyayı birden çok hizmet için Hizmet Denetim Yöneticisi'ne (SCM) kaydeder. |
ServiceMainCallback(Int32, IntPtr) |
Komut işleyicisini kaydeder ve hizmeti başlatır. |
Stop() |
Yürütme hizmetini durdurur. |
ToString() |
Varsa, adını Componentiçeren bir String döndürür. Bu yöntem geçersiz kılınmamalıdır. (Devralındığı yer: Component) |
Ekinlikler
Disposed |
Bileşen yöntemine Dispose() yapılan bir çağrı tarafından atıldığında gerçekleşir. (Devralındığı yer: Component) |