Vorgehensweise: Starten von 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:
Nachdem ein Dienst installiert wurde, muss er gestartet werden. Beim Starten wird die OnStart-Methode für die Dienstklasse aufgerufen. In der Regel werden die Vorgänge, die vom Dienst durchgeführt werden, von der OnStart-Methode definiert. Nachdem ein Dienst gestartet worden ist, bleibt er aktiv, solange er nicht manuell angehalten oder beendet wird.
Für Dienste kann festgelegt werden, ob sie automatisch oder manuell gestartet werden. Ein automatisch startender Dienst wird gestartet, wenn der Computer, auf dem er installiert ist, neu gestartet oder zum ersten Mal eingeschaltet wird. Ein Dienst, der manuell gestartet wird, muss von Benutzern gestartet werden.
Hinweis
Mit Visual Studio erstellte Dienste sind standardmäßig auf manuelles Starten festgelegt.
Ein Dienst kann auf verschiedene Weise manuell gestartet werden: Mit dem Server-Explorer, dem Dienststeuerungs-Manager oder indem im Code die ServiceController-Komponente verwendet wird.
Die StartType-Eigenschaft für die ServiceInstaller-Klasse wird festgelegt, um zu bestimmen, ob ein Dienst manuell oder automatisch gestartet werden soll.
So geben Sie an, wie ein Dienst gestartet werden soll
Nachdem Sie den Dienst erstellt haben, fügen Sie die erforderlichen Installationsprogramme hinzu. Weitere Informationen finden Sie unter Vorgehensweise: Hinzufügen von Installern zur Dienstanwendung.
Klicken Sie im Designer auf das Dienstinstallationsprogramm für den Dienst, mit dem Sie arbeiten.
Legen Sie im Fenster Eigenschaften die StartType-Eigenschaft auf einen der folgenden Werte fest:
Installationszeitpunkt Festzulegender Wert Sobald der Computer neu gestartet wird Automatisch Sobald der Dienst von einer expliziten Benutzeraktion gestartet wird Manuell Tipp
Wenn der Dienst nie gestartet werden soll, legen Sie die StartType-Eigenschaft auf Deaktiviert fest. Wenn ein Server mehrmals neu gestartet wird, kann damit Zeit gespart werden, indem das Starten von Diensten verhindert wird, die in der Regel gestartet würden.
Hinweis
Diese und weitere Eigenschaften können geändert werden, nachdem der Dienst installiert wurde.
Es stehen mehrere Möglichkeiten zur Verfügung, einen Dienst zu starten, dessen StartType-Vorgang auf Manuell festgelegt ist: mit dem Server-Explorer, dem Dienststeuerungs-Manager von Windows oder programmgesteuert. Wichtig dabei ist, dass der Dienst nicht von allen Methoden im Kontext des Dienststeuerungs-Managers gestartet wird. Tatsächlich wird der Controller mit dem Server-Explorer und mit programmgesteuerten Startmethoden geändert.
Starten eines Diensts über den Server-Explorer
Fügen Sie im Server-Explorer den gewünschten Server hinzu, sofern dieser noch nicht aufgelistet ist. Weitere Informationen finden Sie unter „Gewusst wie: Zugreifen auf und Initialisieren von Server-Explorer und Datenbank-Explorer“.
Erweitern Sie den Knoten Dienste, und suchen Sie den zu startenden Dienst.
Klicken Sie mit der rechten Maustaste auf den Dienst, und klicken Sie dann auf Start.
Starten eines Diensts über Dienste
Öffnen Sie die App Dienste.
Wählen Sie den Dienst in der Liste aus, klicken Sie mit der rechten Maustaste darauf, und klicken Sie dann auf Start.
Starten eines Diensts in Code
Erstellen Sie eine Instanz der ServiceController-Klasse, und konfigurieren Sie sie so, dass Daten mit dem Dienst ausgetauscht werden können.
Starten Sie den Dienst, indem Sie die Start-Methode aufrufen.