Freigeben über


Gewusst wie: 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 der Vorlage "Worker Service" finden Sie unter:

Wenn Sie einen Dienst erstellen, können Sie eine Visual Studio-Projektvorlage namens "Windows-Dienst" verwenden. Diese Vorlage erledigt automatisch einen Großteil der Arbeit für Sie, indem sie auf die entsprechenden Klassen und Namespaces verweisen, die Vererbung von der Basisklasse für Dienste einrichten und mehrere der Methoden außer Kraft setzen, die Sie wahrscheinlich außer Kraft setzen möchten.

Warnung

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

Um mindestens einen funktionalen Dienst zu erstellen, müssen Sie:

  • Legen Sie die ServiceName-Eigenschaft fest.

  • Erstellen Sie die erforderlichen Installationsprogramme für Ihre Dienstanwendung.

  • Überschreiben Sie den Code und geben Sie ihn für die OnStart und OnStop Methoden an, um die Art, wie sich Ihr Dienst verhält, anzupassen.

So erstellen Sie eine Windows-Dienstanwendung

  1. Erstellen Sie ein Windows-Dienstprojekt .

    Hinweis

    Anweisungen zum Schreiben eines Diensts ohne Verwendung der Vorlage finden Sie unter How to: Write Services Programmatically.

  2. Legen Sie im Eigenschaftenfenster die ServiceName Eigenschaft für Ihren Dienst fest.

    Legen Sie die ServiceName-Eigenschaft fest.

    Hinweis

    Der Wert der ServiceName Eigenschaft muss immer mit dem in den Installer-Klassen aufgezeichneten Namen übereinstimmen. Wenn Sie diese Eigenschaft ändern, müssen Sie auch die ServiceName Eigenschaft von Installer-Klassen aktualisieren.

  3. Legen Sie eine der folgenden Eigenschaften fest, um zu bestimmen, wie Ihr Dienst funktioniert.

    Eigentum Setting
    CanStop True um anzugeben, dass der Dienst Anforderungen zum Beenden der Ausführung akzeptiert; false um zu verhindern, dass der Dienst beendet wird.
    CanShutdown True um anzugeben, dass das Service eine Benachrichtigung erhalten möchte, wenn der Computer, auf dem es läuft, heruntergefahren wird, sodass es die OnShutdown Prozedur aufrufen kann.
    CanPauseAndContinue True um anzugeben, dass der Dienst Anforderungen zum Anhalten oder Fortsetzen der Ausführung akzeptiert; false um zu verhindern, dass der Dienst angehalten und fortgesetzt wird.
    CanHandlePowerEvent True um anzugeben, dass der Dienst die Benachrichtigung über Änderungen am Stromstatus des Computers verarbeiten kann; false um zu verhindern, dass der Dienst über diese Änderungen benachrichtigt wird.
    AutoLog True um Informationseinträge in das Anwendungsereignisprotokoll zu schreiben, wenn Ihr Dienst eine Aktion ausführt; false um diese Funktionalität zu deaktivieren. Weitere Informationen finden Sie unter Anleitung: Informationen über Dienste protokollieren. Hinweis: Standardmäßig wird AutoLog auf true gesetzt.

    Hinweis

    Wenn CanStop oder CanPauseAndContinue auf false festgelegt sind, deaktiviert der Dienststeuerungs-Manager die entsprechenden Menüoptionen, um den Dienst zu stoppen, zu pausieren oder fortzusetzen.

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

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

  6. Fügen Sie die erforderlichen Installationsprogramme für Ihre Dienstanwendung hinzu. Weitere Informationen finden Sie unter Anleitung: Hinzufügen von Installern zu Ihrer Dienstanwendung.

  7. Erstellen Sie Ihr Projekt, indem Sie "Projektmappe erstellen" aus dem Menü "Erstellen" auswählen.

    Hinweis

    Drücken Sie nicht F5, um Ihr Projekt auszuführen. Auf diese Weise können Sie kein Dienstprojekt ausführen.

  8. Installieren Sie den Dienst. Weitere Informationen finden Sie unter How to: Install and Uninstall Services.

Siehe auch