Einführung in die Kommunikation mit vorhandenen Diensten

Aktualisiert: November 2007

Mit der ServiceController-Komponente kann die Verbindung zu einem vorhandenen Dienst aufgebaut und sein Verhalten gesteuert werden. Sobald eine Instanz der ServiceController-Komponente erstellt wird, wird sie auf die Interaktion mit einem bestimmten Windows-Dienst festgelegt. Anschließend kann der Dienst mit der Komponenteninstanz gestartet, beendet und anderweitig geändert werden. Beispielsweise kann eine ServiceController-Komponente erstellt werden. Diese kann dann zusammen mit einer Timer-Komponente verwendet werden, um einen Dienst zeitgesteuert zu starten und zu beenden.

Die ServiceController-Komponente kann für viele Zwecke verwendet werden. Beispiel:

  • Ein Dienst, zu dem eine Verbindung besteht, kann gestartet, beendet und angehalten werden. Daneben können alle anderen Verwaltungsaktionen durchgeführt werden, auf die der Dienst reagieren kann. Weitere Informationen hierzu finden Sie unter Gewusst wie: Ausführen von Verwaltungsaufgaben für Dienste.

  • Verschiedene Eigenschaften des Dienstes, mit dem die Komponente interagiert, können abgefragt und deren Werte abgerufen werden. Beispielsweise kann bestimmt werden, ob ein Dienst beendet, angehalten und fortgesetzt werden kann, indem die Werte der CanStop-Eigenschaft und der CanPauseAndContinue-Eigenschaft abgerufen werden.

  • Eine Liste der Dienste kann zurückgegeben werden, die für einen bestimmten Computer vorhanden sind.

  • Ein benutzerdefinierter Befehl kann angegeben werden, der für den Dienst aufgerufen werden soll. Weitere Informationen über benutzerdefinierte Befehle finden Sie in MSDN Online.

Die Anforderungen für Aktionen werden von der ServiceController-Komponente an den Dienststeuerungs-Manager und nicht an den Dienst selbst übergeben. Vom Dienststeuerungs-Manager wird der Dienst dann beendet, gestartet oder angehalten, oder es werden andere angegebene Aktionen durchgeführt. Nachdem die Anfrage von ServiceController an den Dienststeuerungs-Manager übergeben worden ist, können weitere Vorgänge verarbeitet werden. Es wird nicht darauf gewartet, dass die Anfrage vom Dienststeuerungs-Manager an den Dienst übergeben wird. Aus diesem Grund müssen Ausnahmen in der Dienstklasse selbst behandelt werden, nicht in der ServiceController-Klasse.

Hinweis:

Im Allgemeinen darf keine ServiceController-Komponente zu einer Windows-Dienstanwendung hinzugefügt werden, wenn von der Komponente der Dienst geändert werden soll, der im gleichen Projekt enthalten ist. Mit Code in dem Projekt, von dem ein Dienst erstellt wird, kann ein Dienst nicht gesteuert werden. Er muss von einem anderen Kontext gesteuert werden.

Siehe auch

Aufgaben

Gewusst wie: Erstellen von Instanzen von ServiceController-Komponenten

Gewusst wie: Ausführen von Verwaltungsaufgaben für Dienste

Gewusst wie: Abrufen von Listen von Diensten

Beispiel für Dienst-Manager