Sdílet prostřednictvím


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

  1. Vytvořte prázdný projekt a následujícím postupem vytvořte odkaz na nezbytné obory názvů:

    1. 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.

    2. Na kartě .NET Framework přejděte na System.dll a klikněte na Vybrat.

    3. Posuňte se na System.ServiceProcess.dll a klikněte na Vybrat.

    4. Klikněte na OK.

  2. 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
    
  3. 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
    
  4. 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
    
  5. 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
    
  6. 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ě.

  7. 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.

  8. 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.

  9. 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.

  10. Nainstalujte službu. Další informace naleznete v tématu Postupy: Instalace a odinstalace služeb.

Viz také