.net Core Windows Service Example

4 min read Jun 03, 2024
.net Core Windows Service Example

Créer un service Windows avec .NET Core : un exemple simple

Introduction

Les services Windows sont des applications qui s'exécutent en arrière-plan sur un système d'exploitation Windows. Ils sont utilisés pour effectuer des tâches régulières ou pour répondre à des événements spécifiques. Avec l'arrivée de .NET Core, il est désormais possible de créer des services Windows robustes et performants.

Créer un projet de service Windows

  1. Créer un nouveau projet .NET Core Console Application: Ouvrez Visual Studio et sélectionnez "Créer un projet". Choisissez le modèle "Application console (.NET Core)" et donnez un nom à votre projet.

  2. Installer le package NuGet Microsoft.Extensions.Hosting.WindowsServices: Dans le gestionnaire de paquets NuGet, recherchez et installez le package "Microsoft.Extensions.Hosting.WindowsServices". Ce package fournit les outils nécessaires pour créer des services Windows avec .NET Core.

Code d'exemple

Voici un exemple de code pour un service Windows simple qui affiche un message de bienvenue toutes les 5 secondes :

using Microsoft.Extensions.Hosting;
using System;
using System.Threading;
using System.Threading.Tasks;

namespace MyWindowsService
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .UseWindowsService()
                .ConfigureServices((hostContext, services) =>
                {
                    services.AddHostedService();
                });
    }

    public class MyService : IHostedService
    {
        private readonly Timer _timer;

        public MyService()
        {
            _timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromSeconds(5));
        }

        public Task StartAsync(CancellationToken cancellationToken)
        {
            Console.WriteLine("Service démarré !");
            return Task.CompletedTask;
        }

        public Task StopAsync(CancellationToken cancellationToken)
        {
            Console.WriteLine("Service arrêté !");
            return Task.CompletedTask;
        }

        private void DoWork(object state)
        {
            Console.WriteLine("Bienvenue dans le service Windows !");
        }
    }
}

Installation du service Windows

  1. Créer un fichier de configuration (.exe.config): Dans le dossier du projet, créez un fichier nommé "MyWindowsService.exe.config" avec le contenu suivant :


  
    
      
        
          
            
          
        
      
    
  

  1. Utiliser l'outil "sc.exe": Ouvrez une invite de commandes avec privilèges administratifs et exécutez la commande suivante pour installer le service Windows :
sc create MyWindowsService binPath= "chemin_vers_le_fichier_exe"

Remplacez "chemin_vers_le_fichier_exe" par le chemin complet vers votre fichier exécutable .exe.

Démarrer et arrêter le service Windows

Une fois le service installé, vous pouvez le démarrer, l'arrêter ou le redémarrer en utilisant les commandes suivantes dans l'invite de commandes :

  • Démarrer le service: sc start MyWindowsService
  • Arrêter le service: sc stop MyWindowsService
  • Redémarrer le service: sc restart MyWindowsService

Conclusion

Cet exemple simple vous montre les bases de la création d'un service Windows avec .NET Core. Vous pouvez l'adapter pour créer des services plus complexes en fonction de vos besoins spécifiques. N'oubliez pas que les services Windows sont un outil puissant pour automatiser des tâches et améliorer la fiabilité de vos applications .NET Core.

Featured Posts