Delen via


Procedure: Programmatisch services schrijven

Notitie

Dit artikel is niet van toepassing op gehoste services in .NET. Zie voor de nieuwste inhoud van Windows-services die gebruikmaken van Microsoft.Extensions.Hosting.BackgroundService en de worker-servicesjabloon:

Als u ervoor kiest om de Windows Service-projectsjabloon niet te gebruiken, kunt u uw eigen services schrijven door de overname en andere infrastructuurelementen zelf in te stellen. Wanneer u programmatisch een service maakt, moet u verschillende stappen uitvoeren die anders door de sjabloon voor u worden verwerkt:

  • U moet uw serviceklasse instellen om deze over te nemen van de ServiceBase klasse.

  • U moet een Main methode maken voor uw serviceproject waarmee de services worden gedefinieerd die moeten worden uitgevoerd en die de Run methode hierop worden aangeroepen.

  • U moet de OnStart en OnStop procedures overschrijven en alle code invullen die u wilt uitvoeren.

Een service programmatisch schrijven

  1. Maak een leeg project en maak een verwijzing naar de benodigde naamruimten door de volgende stappen uit te voeren:

    1. Klik in Solution Explorer met de rechtermuisknop op het knooppunt Verwijzingen en klik op Verwijzing toevoegen.

    2. Schuif op het tabblad .NET Framework naar System.dll en klik op Selecteren.

    3. Schuif naar System.ServiceProcess.dll en klik op Selecteren.

    4. Klik op OK.

  2. Voeg een klasse toe en configureer deze om over te nemen van ServiceBase:

    public class UserService1 : ServiceBase
    {
    }
    
    Public Class UserService1
        Inherits System.ServiceProcess.ServiceBase
    End Class
    
  3. Voeg de volgende code toe om uw serviceklasse te configureren:

    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. Maak een Main methode voor uw klasse en gebruik deze om de service te definiƫren die uw klasse bevat. userService1 Dit is de naam van de klasse:

    public static void Main()
    {
        ServiceBase.Run(new UserService1());
    }
    
    Shared Sub Main()
        System.ServiceProcess.ServiceBase.Run(New UserService1)
    End Sub
    
  5. Overschrijf de OnStart methode en definieer de verwerking die u wilt uitvoeren wanneer uw service wordt gestart.

    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. Overschrijf alle andere methoden waarvoor u aangepaste verwerking wilt definiƫren en schrijf code om te bepalen welke acties de service in elk geval moet uitvoeren.

  7. Voeg de benodigde installatieprogramma's toe voor uw servicetoepassing. Zie Instructies voor meer informatie : Installatieprogramma's toevoegen aan uw servicetoepassing.

  8. Bouw uw project door Build Solution te selecteren in het menu Build.

    Notitie

    Druk niet op F5 om uw project uit te voeren. U kunt een serviceproject niet op deze manier uitvoeren.

  9. Maak een installatieproject en de aangepaste acties om uw service te installeren. Zie Walkthrough voor een voorbeeld: Een Windows-servicetoepassing maken in componentontwerper.

  10. Installeer de service. Zie Voor meer informatie: Services installeren en verwijderen.

Zie ook