ServiceBase Osztály

Definíció

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)

A következőre érvényes:

Lásd még