Gewusst wie: Erstellen von Windows-Diensten

Wenn ein Dienst erstellt wird, kann die Visual Studio-Projektvorlage Windows-Dienst verwendet werden. 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.

Tipp

Die Vorlage Windows-Dienst und die entsprechenden Funktionen stehen in der Standard Edition von Visual Studio nicht zur Verfügung.

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.

Wenn Sie der Anwendung Installationsprogramme hinzugefügt haben, erstellen Sie im nächsten Schritt ein Setup-Projekt, mit dem die kompilierten Projektdateien installiert und die zum Installieren des Diensts benötigten Installationsprogramme ausgeführt werden. Zum Erstellen eines vollständigen Setup-Projekts müssen Sie die Ausgabe des Dienstprojekts zum Setup-Projekt hinzufügen und dann eine benutzerdefinierte Aktion einfügen, um den Dienst zu installieren. Weitere Informationen über Setup-Projekte finden Sie unter Setup- und Bereitstellungsprojekte. Weitere Informationen über benutzerdefinierte Aktionen finden Sie unter Exemplarische Vorgehensweise: Erstellen einer benutzerdefinierten Aktion.

So erstellen Sie eine Windows-Dienstanwendung

  1. Erstellen Sie ein neues Windows-Dienst-Projekt.

    Tipp

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

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

    Tipp

    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 Gewusst wie: Protokollinformationen über Dienste.

    HinweisHinweis
    AutoLog ist standardmäßig auf true festgelegt.

    Tipp

    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 Gewusst wie: Hinzufügen von Installern zur Dienstanwendung.

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

    Tipp

    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 Gewusst wie: Installieren und Deinstallieren von Diensten.

Siehe auch

Aufgaben

Gewusst wie: Programmgesteuertes Schreiben von Diensten

Gewusst wie: Hinzufügen von Installern zur Dienstanwendung

Gewusst wie: Protokollinformationen über Dienste

Gewusst wie: Starten von Diensten

Gewusst wie: Angeben des Sicherheitskontexts für Dienste

Gewusst wie: Installieren und Deinstallieren von Diensten

Exemplarische Vorgehensweise: Erstellen einer Windows-Dienstanwendung im Komponenten-Designer

Konzepte

Einführung in Windows-Dienstanwendungen