Ausführen von Verwaltungsaufgaben für Dienste

Visual Studio .NET 2003

Für einen Dienst können eine Reihe von Standardverwaltungsaufgaben durchgeführt werden. Dazu gehören das Starten, Beenden, Anhalten und Fortsetzen des Dienstes. Sie können diese Aufgaben durchführen, indem Sie den Server-Explorer verwenden, oder indem Sie Methoden für eine Instanz der ServiceController-Komponente aufrufen, die mit einem vorhandenen Dienst verbunden worden ist.

Im Allgemeinen wird von Autoren von Diensten Code geschrieben, durch den die Aktionen angepasst werden, die mit einer bestimmten Aufgabe verknüpft sind. Ein Dienst kann z. B. Code enthalten, damit auf einen OnPause-Befehl reagiert wird. In diesem Fall wird die benutzerdefinierte Verarbeitung für das Anhalten ausgeführt, bevor der Dienst angehalten wird. Informationen über das Definieren von Funktionen für Dienste finden Sie unter Erstellen von Windows-Diensten.

Welche Aufgaben für einen bestimmten Dienst verfügbar sind, hängt von seinen Eigenschaften ab. Die CanStop-Eigenschaft für einen Dienst kann z. B. auf False festgelegt werden. Dadurch wird der Befehl zum Beenden als für den Dienst nicht verfügbar aufgefasst. Bei dem Versuch, den Dienst im Server-Explorer zu beenden, wird das benötigte Menüelement als deaktiviert angezeigt. Wenn versucht wird, den Dienst programmgesteuert anzuhalten, wird vom System ein Fehler ausgelöst: "Der Dienst kann nicht beendet werden."

So führen Sie eine Verwaltungsaufgabe im Server-Explorer durch

  1. Fügen Sie im Server-Explorer den gewünschten Server hinzu, sofern dieser noch nicht aufgelistet ist. Weitere Informationen hierzu finden Sie unter Zugreifen auf den und Initialisieren des Server-Explorers.
    Hinweis   Der Knoten Server des Server-Explorers ist in der Standard Edition von Visual Basic und Visual C# .NET nicht verfügbar. Weitere Informationen finden Sie unter Features von Visual Basic Standard Edition und Features von Visual C# Standard Edition.
  2. Erweitern Sie den Knoten Dienste, und suchen Sie dann den Dienst, für den Sie Verwaltungsaufgaben durchführen möchten.
  3. Klicken Sie mit der rechten Maustaste auf den Dienst, und klicken Sie dann auf die gewünschte Aufgabe.

So führen Sie eine Verwaltungsaufgabe programmgesteuert durch

  1. Erstellen Sie eine Instanz der ServiceController-Klasse, und konfigurieren Sie sie für die Interaktion mit dem Dienst, der verwaltet werden soll. Weitere Informationen finden Sie unter Erstellen von Instanzen von ServiceController-Komponenten.
  2. Rufen Sie die entsprechende Methode zum Starten, Beenden, Anhalten oder Fortsetzen des Dienstes auf.
    Tipp   Die entsprechenden Eigenschaften könnten für jeden dieser Befehle abgefragt werden. Dadurch könnte ermittelt werden, ob ein Dienst auf eine Anfrage reagieren wird. Das bedeutet, dass eine bedingte Anweisung verwendet werden könnte, von der die CanStop-Eigenschaft für den Dienst abgefragt wird. Von dieser würde vor dem Aufrufen der Start-Methode ermittelt, ob die Eigenschaft auf True festgelegt worden ist.

    Im folgenden Beispiel wird gezeigt, wie vor dem Erteilen eines Befehls überprüft werden kann, ob er von einem Dienst akzeptiert wird.

    ' Visual Basic
    If myController.CanStop Then
       myController.Stop()
    End If
    
    // C#
    if (myController.CanStop)
    {
       myController.Stop();
    }
    

Siehe auch

Einführung in die Kommunikation mit vorhandenen Diensten | Erstellen von Instanzen von ServiceController-Komponenten | Abrufen von Listen von Diensten | Zugreifen auf den und Initialisieren des Server-Explorers | Erstellen von Windows-Diensten

Anzeigen: