ServiceBase Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Alaposztályt biztosít egy szolgáltatásalkalmazás részeként létező szolgáltatáshoz. ServiceBase új szolgáltatásosztály létrehozásakor kell származnia.
public ref class ServiceBase : System::ComponentModel::Component
public class ServiceBase : System.ComponentModel.Component
type ServiceBase = class
inherit Component
Public Class ServiceBase
Inherits Component
- Öröklődés
- Származtatott
Megjegyzések
A szolgáltatásosztály szolgáltatásalkalmazásban való definiálásakor származik ServiceBase . Minden hasznos szolgáltatás felülírja a metódusokat és OnStart a OnStop metódusokat. További funkciók esetén felülbírálhatja OnPause és OnContinue adott viselkedéssel reagálhat a szolgáltatásállapot változásaira.
A szolgáltatás hosszú ideig futó végrehajtható, amely nem támogatja a felhasználói felületet, és amely nem a bejelentkezett felhasználói fiók alatt fut. A szolgáltatás anélkül futtatható, hogy a felhasználó bejelentkezett a számítógépre.
Alapértelmezés szerint a szolgáltatások a Rendszerfiók alatt futnak, ami nem ugyanaz, mint a rendszergazdai fiók. A rendszerfiók jogait nem módosíthatja. Másik lehetőségként megadhat egy ServiceProcessInstaller felhasználói fiókot, amelyen a szolgáltatás futni fog.
A végrehajtható fájlok több szolgáltatást is tartalmazhatnak, de mindegyik szolgáltatáshoz külön-külön ServiceInstaller kell szerepelnie. A ServiceInstaller példány regisztrálja a szolgáltatást a rendszerben. A telepítő emellett minden szolgáltatást társít egy eseménynaplóhoz, amellyel rögzítheti a szolgáltatásparancsokat. A main() végrehajtható függvény határozza meg, hogy mely szolgáltatások fussanak. A szolgáltatás aktuális munkakönyvtára a rendszerkönyvtár, nem pedig az a könyvtár, amelyben a végrehajtható fájl található.
Amikor elindít egy szolgáltatást, a rendszer megkeresi a végrehajtható fájlt, és futtatja az OnStart adott szolgáltatás metódusát, amely a végrehajtható fájlban található. A szolgáltatás futtatása azonban nem ugyanaz, mint a végrehajtható fájl futtatása. A végrehajtható fájl csak a szolgáltatást tölti be. A szolgáltatás a Service Control Manageren keresztül érhető el (például elindítva és leállítva).
A végrehajtható meghívja a ServiceBase származtatott osztály konstruktorát, amikor először hívja meg a startot a szolgáltatásban. A OnStart parancskezelési metódust a konstruktor végrehajtása után azonnal meghívja a rendszer. A konstruktor nem lesz újra végrehajtva a szolgáltatás első betöltése után, ezért el kell különíteni a konstruktor által elvégzett feldolgozást az általuk OnStartvégrehajtotttól. A felszabadítható OnStop erőforrásokat a következő helyen OnStartkell létrehozni: . Az erőforrások konstruktorban való létrehozása megakadályozza az erőforrások megfelelő létrehozását, ha a szolgáltatás újra elindul az erőforrások felszabadítása után OnStop .
A Service Control Manager (SCM) lehetővé teszi a szolgáltatással való interakciót. Az SCM használatával átadhatja a szolgáltatásnak a Start, a Stop, a Pause, a Continue vagy az egyéni parancsokat. Az SCM a Stop, a Pause vagy a Continue parancsok értékét CanStop használja, és CanPauseAndContinue meghatározza, hogy a szolgáltatás elfogadja-e a Stop, a Pause vagy a Continue parancsokat. A Leállítás, a Szüneteltetés és a Folytatás csak akkor engedélyezett az SCM helyi menüjében, ha a megfelelő tulajdonság CanStop vagy CanPauseAndContinue a szolgáltatásosztályban van true . Ha engedélyezve van, a rendszer átadja a parancsot a szolgáltatásnak, és OnStopOnPause, vagy OnContinue meghívja.
CanStop
CanShutdown
CanPauseAndContinue Ha falsea megfelelő parancskezelési metódus (például OnStop) nem lesz feldolgozva, még akkor sem, ha implementálta a metódust.
Az ServiceController osztály használatával programozott módon végezheti el, amit az SCM a felhasználói felület használatával végez. Automatizálhatja a konzolon elérhető feladatokat. Ha CanStop, CanShutdownvagy CanPauseAndContinue igen true , de nem implementált egy megfelelő parancskezelési módszert (például OnStop) a rendszer kivételt jelez, és figyelmen kívül hagyja a parancsot.
Nem kell implementálnia OnStart, OnStopvagy bármilyen más metódust a következőben ServiceBase: . A szolgáltatás viselkedését azonban a rendszer ismerteti OnStart, ezért legalább ezt a tagot felül kell bírálni. A main() végrehajtható függvény a metódus meghívásával Run regisztrálja a szolgáltatást a végrehajtható fájlban a Service Control Managerrel. A ServiceName metódusnak ServiceBase átadott objektum tulajdonságának Run meg kell egyeznie az ServiceName adott szolgáltatáshoz tartozó szolgáltatástelepítő tulajdonságával.
A sc create paranccsal modern .NET célzó szolgáltatásokat telepíthet, vagy InstallUtil.exe használatával telepíthet .NET-keretrendszert célzó szolgáltatásokat.
Note
Az alkalmazásesemény-naplótól eltérő naplót is megadhat a szolgáltatáshívások értesítéséhez, de sem a tulajdonság, sem a AutoLogEventLog tulajdonság nem tud egyéni naplóba írni.
AutoLog Ha nem szeretne automatikus naplózást használni, állítsa be a beállítástfalse.
Konstruktorok
| Name | Description |
|---|---|
| ServiceBase() |
Létrehozza az osztály új példányát ServiceBase . |
Mezők
| Name | Description |
|---|---|
| MaxNameLength |
A szolgáltatásnév maximális méretét jelzi. |
Tulajdonságok
| Name | Description |
|---|---|
| AutoLog |
Azt jelzi, hogy az eseménynaplóban be kell-e jelenteni a Start, a Stop, a Pause és a Continue parancsot. |
| CanHandlePowerEvent |
Lekéri vagy beállítja azt az értéket, amely jelzi, hogy a szolgáltatás képes-e kezelni a számítógép energiaállapotának változásaival kapcsolatos értesítéseket. |
| CanHandleSessionChangeEvent |
Lekéri vagy beállít egy értéket, amely jelzi, hogy a szolgáltatás képes-e kezelni a terminálkiszolgáló munkamenetéből fogadott munkamenet-változási eseményeket. |
| CanPauseAndContinue |
Lekéri vagy beállít egy értéket, amely jelzi, hogy a szolgáltatás szüneteltethető-e és folytatható-e. |
| CanRaiseEvents |
Beolvas egy értéket, amely jelzi, hogy az összetevő képes-e eseményt létrehozni. (Öröklődés forrása Component) |
| CanShutdown |
Lekéri vagy beállít egy értéket, amely jelzi, hogy a szolgáltatás értesítést kapjon-e a rendszer leállásakor. |
| CanStop |
Lekéri vagy beállít egy értéket, amely jelzi, hogy a szolgáltatás leállítható-e az indítás után. |
| Container |
Lekéri a IContainer .Component (Öröklődés forrása Component) |
| DesignMode |
Olyan értéket kap, amely jelzi, hogy az Component aktuálisan tervezési módban van-e. (Öröklődés forrása Component) |
| EventLog |
Lekéri az alkalmazás eseménynaplójába a szolgáltatásparancsok hívásáról (például a Start és a Leállítás) szóló értesítés megírásához használható eseménynaplót. |
| Events |
Lekéri az ehhez Componentcsatolt eseménykezelők listáját. (Öröklődés forrása Component) |
| ExitCode |
Lekéri vagy beállítja a szolgáltatás kilépési kódját. |
| ServiceHandle |
Lekéri a szolgáltatáshoz tartozó szolgáltatásvezérlő leírót. |
| ServiceName |
Lekéri vagy beállítja a szolgáltatás azonosításához használt rövid nevet a rendszernek. |
| Site |
Lekéri vagy megadja a ISite értékét a Component-hez. (Öröklődés forrása Component) |
Metódusok
| Name | Description |
|---|---|
| CreateObjRef(Type) |
Létrehoz egy objektumot, amely tartalmazza a távoli objektumokkal való kommunikációhoz használt proxy létrehozásához szükséges összes releváns információt. (Öröklődés forrása MarshalByRefObject) |
| Dispose() |
Felszabadítja a .-hez használt összes erőforrást Component. (Öröklődés forrása Component) |
| Dispose(Boolean) |
A a rendszer által használt erőforrásokat (a memória kivételével) megsemmisíti ServiceBase. |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetLifetimeService() |
Elavult.
Lekéri a példány élettartamszabályzatát vezérlő aktuális élettartam-szolgáltatásobjektumot. (Öröklődés forrása MarshalByRefObject) |
| GetService(Type) |
Olyan objektumot ad vissza, amely az általa vagy annak által ComponentContainernyújtott szolgáltatást jelöli. (Öröklődés forrása Component) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| InitializeLifetimeService() |
Elavult.
Beolvas egy élettartam-szolgáltatásobjektumot a példány élettartam-szabályzatának szabályozásához. (Öröklődés forrása MarshalByRefObject) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| MemberwiseClone(Boolean) |
Az aktuális MarshalByRefObject objektum sekély másolatát hozza létre. (Öröklődés forrása MarshalByRefObject) |
| OnContinue() |
Származtatott osztályban OnContinue() való implementáláskor a Service Control Manager (SCM) egy Continue parancs elküldésekor fut. Megadja azokat a műveleteket, amelyeket akkor kell végrehajtani, amikor egy szolgáltatás a szüneteltetés után ismét a normál működést folytatja. |
| OnCustomCommand(Int32) |
Származtatott osztályban implementálva a szolgáltatás akkor hajtja végre, OnCustomCommand(Int32) ha a Service Control Manager (SCM) átad egy egyéni parancsot a szolgáltatásnak. Megadja a megadott paraméterértékkel rendelkező parancsok végrehajtásakor végrehajtandó műveleteket. |
| OnPause() |
Származtatott osztályban implementálva a Szolgáltatásvezérlő (SCM) egy Szüneteltetés parancsot küld a szolgáltatásnak. Meghatározza a szolgáltatás szüneteltetésekor végrehajtandó műveleteket. |
| OnPowerEvent(PowerBroadcastStatus) |
Származtatott osztályban való implementáláskor a rendszer akkor hajtja végre, ha a számítógép energiaállapota megváltozott. Ez a hordozható számítógépekre vonatkozik, amikor felfüggesztett módban vannak, ami nem ugyanaz, mint a rendszer leállítása. |
| OnSessionChange(SessionChangeDescription) |
Akkor hajtja végre, amikor változásesemény érkezik egy terminálkiszolgáló munkamenetéből. |
| OnShutdown() |
Származtatott osztályban implementálva a rendszer leállításakor hajtja végre. Meghatározza, hogy mi történjen közvetlenül a rendszer leállítása előtt. |
| OnStart(String[]) |
Származtatott osztályban implementálva a rendszer akkor hajtja végre, ha a Service Control Manager (SCM) egy Start parancsot küld a szolgáltatásnak, vagy amikor elindul az operációs rendszer (automatikusan elinduló szolgáltatás esetén). Megadja a szolgáltatás indításakor végrehajtandó műveleteket. |
| OnStop() |
Származtatott osztályban való implementáláskor a szolgáltatásnak a Service Control Manager (SCM) küld leállítási parancsot. Meghatározza a szolgáltatás futásának leállásakor végrehajtandó műveleteket. |
| RequestAdditionalTime(Int32) |
További időt kér egy függőben lévő művelethez. |
| RequestAdditionalTime(TimeSpan) |
Ha ezt a metódust az OnStart, az OnStop, az OnPause vagy az OnContinue metódusból hívja meg, a rendszer a megadott várakozási tippet továbbítja a Service Control Managernek, hogy elkerülje, hogy a szolgáltatás ne válaszoljon. |
| Run(ServiceBase) |
Egy szolgáltatás végrehajtható fájlját regisztrálja a Service Control Managerrel (SCM). |
| Run(ServiceBase[]) |
Több szolgáltatás végrehajtható fájlját regisztrálja a Service Control Managerrel (SCM). |
| ServiceMainCallback(Int32, IntPtr) |
Regisztrálja a parancskezelőt, és elindítja a szolgáltatást. |
| Stop() |
Leállítja a végrehajtó szolgáltatást. |
| ToString() |
String A ( ha van) nevet tartalmazó értéket Componentad vissza. Ezt a módszert nem szabad felülírni. (Öröklődés forrása Component) |
esemény
| Name | Description |
|---|---|
| Disposed |
Akkor fordul elő, ha az összetevőt a metódus hívása megsemmisíti Dispose() . (Öröklődés forrása Component) |