Freigeben über


ServiceController-Klasse

Stellt einen Windows-Dienst dar und ermöglicht es, eine Verbindung mit einem ausgeführten oder beendeten Dienst herzustellen, ihn zu verändern oder Informationen über ihn abzurufen.

Namespace: System.ServiceProcess
Assembly: System.ServiceProcess (in system.serviceprocess.dll)

Syntax

'Declaration
Public Class ServiceController
    Inherits Component
'Usage
Dim instance As ServiceController
public class ServiceController : Component
public ref class ServiceController : public Component
public class ServiceController extends Component
public class ServiceController extends Component

Hinweise

Mithilfe der ServiceController-Klasse können Sie eine Verbindung mit vorhandenen Diensten herstellen und ihr Verhalten steuern. Beim Erstellen einer Instanz der ServiceController-Klasse legen Sie deren Eigenschaften so fest, dass sie mit einem bestimmten Windows-Dienst interagiert. Anschließend können Sie den Dienst mithilfe dieser Klasse starten, beenden oder anderweitig bearbeiten.

In der Regel verwenden Sie die ServiceController-Komponente auf Verwaltungsebene. Beispielsweise können Sie eine Windows- oder Webanwendung erstellen, die über die ServiceController-Instanz benutzerdefinierte Befehle an einen Dienst sendet. Dies ist nützlich, weil das Dienststeuerungs-Manager-Snap-In (SCM) der Microsoft Management Console keine benutzerdefinierten Befehle unterstützt.

Nach dem Erstellen einer Instanz von ServiceController müssen Sie den Dienst angeben, mit dem sie interagiert. Dazu legen Sie zwei zugehörige Eigenschaften fest, den Computernamen und den Namen des zu steuernden Dienstes.

Hinweis

In der Standardeinstellung ist MachineName auf den lokalen Computer festgelegt. Sie müssen deshalb nur Änderungen vornehmen, wenn die Instanz auf einen anderen Computer verweisen soll.

Im Allgemeinen schreibt der Ersteller eines Dienstes Code, mit dem die einem bestimmten Befehl zugeordnete Aktion angepasst wird. Ein Dienst kann z. B. Code enthalten, damit auf einen ServiceBase.OnPause-Befehl reagiert wird. In diesem Fall wird die benutzerdefinierte Verarbeitung für den Pause-Task ausgeführt, bevor das System den Dienst anhält.

Der Befehlssatz, den ein Dienst verarbeiten kann, hängt von seinen Eigenschaften ab; z. B. können Sie die CanStop-Eigenschaft für einen Dienst auf false festlegen. Durch diese Einstellung wird der Stop-Befehl für diesen bestimmten Dienst als nicht verfügbar dargestellt. Sie bewirkt, dass der Dienst nicht mit dem Dienststeuerungs-Manager beendet werden kann, indem die dafür benötigte Schaltfläche deaktiviert wird. Wenn Sie versuchen, den Dienst aus dem Code heraus zu beenden, wird vom System ein Fehler ausgelöst und folgende Fehlermeldung angezeigt: "servicename konnte nicht angehalten werden."

Vererbungshierarchie

System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
      System.ServiceProcess.ServiceController

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

ServiceController-Member
System.ServiceProcess-Namespace
ServiceBase-Klasse
ServiceControllerStatus
ServiceType