Freigeben über


Vorgehensweise: Erstellen von Windows-Diensten

Hinweis

Dieser Artikel gilt nicht für gehostete Dienste in .NET. Die neuesten Inhalte zu Windows-Diensten mit Microsoft.Extensions.Hosting.BackgroundService und die Workerdienstvorlage finden Sie unter:

Wenn Sie einen Dienst erstellen möchten, können Sie die Visual Studio-Projektvorlage Windows-Dienst verwenden. Von dieser Vorlage wird ein großer Teil der Arbeit übernommen, indem auf die entsprechenden Klassen und Namespaces verwiesen wird, die Vererbung von den Basisklassen für Dienste eingerichtet wird und eine Reihe von Methoden überschrieben werden, die voraussichtlich überschrieben werden sollen.

Warnung

Die Projektvorlage Windows Service ist nicht in der Express Edition von Visual Studio verfügbar.

Das Erstellen eines funktionierenden Diensts erfordert mindestens:

  • Legen Sie die ServiceName-Eigenschaft fest.

  • Das Erstellen der für die Dienstanwendung erforderlichen Installationsprogramme.

  • Durch das Überschreiben der OnStart-Methode und der OnStop-Methode und die Eingabe von Code wird das Verhalten des Diensts angepasst.

So erstellen Sie eine Windows-Dienstanwendung

  1. Erstellen Sie ein Windows-Dienstprojekt.

    Hinweis

    Anweisungen zum Schreiben von Diensten ohne die Vorlage finden Sie unter Vorgehensweise: Programmgesteuertes Schreiben von Diensten.

  2. Legen Sie im Fenster Eigenschaften die ServiceName-Eigenschaft für den Dienst fest.

    Legen Sie die ServiceName-Eigenschaft fest.

    Hinweis

    Der Wert der ServiceName-Eigenschaft muss immer mit dem Namen übereinstimmen, der in den Installationsprogrammklassen aufgezeichnet wurde. Wenn Sie diese Eigenschaft ändern, muss auch die ServiceName-Eigenschaft der Installationsprogrammklassen aktualisiert werden.

  3. Legen Sie eine oder mehrere der folgenden Eigenschaften fest, um zu bestimmen, wie der Dienst funktionieren soll.

    Eigenschaft Einstellung
    CanStop Mit True wird angezeigt, dass vom Dienst Anforderungen zum Beenden angenommen werden. Mit false wird verhindert, dass der Dienst beendet werden kann.
    CanShutdown Mit True wird angegeben, dass der Dienst benachrichtigt werden soll, wenn der ausführende Computer heruntergefahren wird. Dadurch wird ermöglicht, dass die OnShutdown-Prozedur aufgerufen werden kann.
    CanPauseAndContinue Mit True wird angegeben, dass vom Dienst Anforderungen zum Anhalten und Fortsetzen angenommen werden. Mit false wird verhindert, dass der Dienst angehalten oder fortgesetzt werden kann.
    CanHandlePowerEvent Mit True wird angegeben, dass der Dienst Benachrichtigungen zu Änderungen des Leistungsstatus eines Computers verarbeiten kann. false gibt an, dass der Dienst nicht über diese Änderungen informiert wird.
    AutoLog Mit True werden informative Einträge in das Anwendungsereignisprotokoll geschrieben, sobald vom Dienst eine Aktion durchgeführt wird. Mit false wird diese Funktion deaktiviert. Weitere Informationen finden Sie unter Vorgehensweise: Protokollinformationen über Dienste. Hinweis:AutoLog ist standardmäßig auf true festgelegt.

    Hinweis

    Wenn CanStop oder CanPauseAndContinue auf false festgelegt sind, werden vom Dienststeuerungs-Manager die entsprechenden Menüoptionen zum Beenden, Anhalten oder Fortsetzen des Diensts deaktiviert.

  4. Greifen Sie auf den Code-Editor zu, und geben Sie die gewünschte Verarbeitung für die OnStart-Prozedur und die OnStop-Prozedur ein.

  5. Überschreiben Sie alle anderen Methoden, für die Sie Funktionen definieren möchten.

  6. Fügen Sie die für die Dienstanwendung erforderlichen Installationsprogramme hinzu. Weitere Informationen finden Sie unter Vorgehensweise: Hinzufügen von Installern zur Dienstanwendung.

  7. Erstellen Sie das Projekt, indem Sie im Menü Erstellen den Befehl Projektmappe erstellen auswählen.

    Hinweis

    Drücken Sie nicht F5, um das Projekt auszuführen. Dienstprojekte können auf diese Weise nicht ausgeführt werden.

  8. Installieren Sie den Dienst. Weitere Informationen finden Sie unter Vorgehensweise: Installieren und Deinstallieren von Diensten.

Siehe auch