Postupy: Zápis služeb prostřednictvím kódu programu
Poznámka:
Tento článek se nevztahuje na hostované služby v .NET. Nejnovější obsah ve službách Windows používajících Microsoft.Extensions.Hosting.BackgroundService a šablonu Pracovní služba najdete v tématech:
Pokud se rozhodnete šablonu projektu Služby systému Windows nepoužívat, můžete napsat vlastní služby nastavením dědičnosti a dalších prvků infrastruktury sami. Když vytváříte službu prostřednictvím kódu programu, musíte provést několik kroků, které by šablona jinak zpracovávala za vás:
Třídu služby musíte nastavit tak, aby dědila z ServiceBase třídy.
Pro projekt služby musíte vytvořit metodu
Main
, která definuje služby, které se mají spouštět, a volat na ně metodu Run .Musíte přepsat OnStart postupy a OnStop vyplnit libovolný kód, který chcete spustit.
Psaní služby prostřednictvím kódu programu
Vytvořte prázdný projekt a následujícím postupem vytvořte odkaz na nezbytné obory názvů:
V Průzkumník řešení klepněte pravým tlačítkem myši na uzel Odkazy a klepněte na tlačítko Přidat odkaz.
Na kartě .NET Framework přejděte na System.dll a klikněte na Vybrat.
Posuňte se na System.ServiceProcess.dll a klikněte na Vybrat.
Klikněte na OK.
Přidejte třídu a nakonfigurujte ji tak, aby dědila z ServiceBase:
public class UserService1 : ServiceBase { }
Public Class UserService1 Inherits System.ServiceProcess.ServiceBase End Class
Přidejte následující kód pro konfiguraci třídy služby:
public UserService1() { ServiceName = "MyService2"; CanStop = true; CanPauseAndContinue = true; AutoLog = true; }
Public Sub New() Me.ServiceName = "MyService2" Me.CanStop = True Me.CanPauseAndContinue = True Me.AutoLog = True End Sub
Vytvořte pro třídu metodu
Main
a použijte ji k definování služby, která bude třída obsahovat;userService1
je název třídy:public static void Main() { ServiceBase.Run(new UserService1()); }
Shared Sub Main() System.ServiceProcess.ServiceBase.Run(New UserService1) End Sub
Přepište metodu OnStart a definujte veškeré zpracování, které chcete provést při spuštění služby.
protected override void OnStart(string[] args) { // Insert code here to define processing. }
Protected Overrides Sub OnStart(ByVal args() As String) ' Insert code here to define processing. End Sub
Přepište všechny další metody, pro které chcete definovat vlastní zpracování, a napište kód, který určí akce, které má služba provést v každém případě.
Přidejte nezbytné instalační programy pro aplikaci služby. Další informace naleznete v tématu Postupy: Přidání instalačních programů do aplikace služby.
Projekt sestavte tak, že v nabídce Sestavení vyberete Sestavit řešení.
Poznámka:
Nestiskejte klávesu F5 ke spuštění projektu – tímto způsobem nelze spustit projekt služby.
Vytvořte projekt instalace a vlastní akce pro instalaci služby. Příklad najdete v tématu Návod: Vytvoření aplikace služby systému Windows v Návrháři komponent.
Nainstalujte službu. Další informace naleznete v tématu Postupy: Instalace a odinstalace služeb.