.net Windows Service Example

6 min read Jun 04, 2024
.net Windows Service Example

Créer un service Windows .NET : Un exemple simple

Introduction

Un service Windows .NET est un programme qui s'exécute en arrière-plan sur un serveur Windows, sans interaction utilisateur directe. Ils sont parfaits pour des tâches automatiques comme la surveillance de fichiers, la planification de tâches ou l'exécution de scripts à intervalles réguliers.

Dans cet exemple, nous allons créer un service Windows .NET simple qui affichera un message dans la console toutes les 5 secondes. Cela nous permettra de comprendre les bases de la création d'un service Windows et de son déploiement.

Étapes

  1. Créer un nouveau projet de service Windows

    Ouvrez Visual Studio et créez un nouveau projet. Sélectionnez "Service Windows (.NET Framework)" dans le modèle de projet. Nommez votre projet (par exemple, "MonServiceWindows") et cliquez sur "OK".

  2. Configurer le service

    Le projet crée un fichier de code source pour le service (par exemple, "Service1.cs"). Dans ce fichier, vous trouverez une classe nommée "Service1" qui hérite de la classe System.ServiceProcess.ServiceBase.

    Ajoutez les méthodes suivantes à la classe Service1:

    protected override void OnStart(string[] args)
    {
        // Code à exécuter lorsque le service démarre
        Console.WriteLine("Service démarré !");
    }
    
    protected override void OnStop()
    {
        // Code à exécuter lorsque le service s'arrête
        Console.WriteLine("Service arrêté !");
    }
    

    La méthode OnStart est appelée lorsque le service Windows .NET est démarré, et la méthode OnStop est appelée lorsqu'il est arrêté.

  3. Ajouter la logique principale

    Ajoutez un timer dans la méthode OnStart pour exécuter votre tâche à intervalles réguliers.

    protected override void OnStart(string[] args)
    {
        // Code à exécuter lorsque le service démarre
        Console.WriteLine("Service démarré !");
    
        // Créer un timer
        Timer timer = new Timer(1000 * 5); // Exécuter toutes les 5 secondes
        timer.Elapsed += Timer_Elapsed; // Définir l'événement pour l'intervalle de temps
        timer.Start(); // Démarrer le timer
    }
    
    private void Timer_Elapsed(object sender, ElapsedEventArgs e)
    {
        Console.WriteLine("Service en cours d'exécution... " + DateTime.Now);
    }
    
    protected override void OnStop()
    {
        // Code à exécuter lorsque le service s'arrête
        Console.WriteLine("Service arrêté !");
    }
    

    Dans cet exemple, nous affichons la date et l'heure actuelle dans la console toutes les 5 secondes.

  4. Installer le service

    Pour installer le service, vous devez créer un programme d'installation. Faites un clic droit sur votre projet dans Visual Studio et sélectionnez "Ajouter" -> "Nouvel élément". Choisissez "Installateur d'applications" et cliquez sur "Ajouter".

    Dans le fichier "Installer1.cs", modifiez le code pour ajouter le service à installer.

    // ... autres lignes de code ... 
    
    // Ajouter le service à installer
    this.Installer = new System.ServiceProcess.ServiceInstaller();
    this.ServiceInstaller1 = new System.ServiceProcess.ServiceInstaller();
    
    this.Installer.Installers.AddRange(new System.Configuration.Install.Installer[] {
        this.ServiceInstaller1,
    });
    
    // ... autres lignes de code ...
    

    Assurez-vous de configurer les propriétés du ServiceInstaller1 comme le nom du service, le type de démarrage (automatique, manuel, etc.) et le chemin d'accès au fichier exécutable du service.

  5. Construire et installer le service

    Construisez votre projet et exécutez le programme d'installation. Il installera le service sur votre serveur Windows.

    Pour démarrer le service, ouvrez les "Services Windows" (par exemple, en tapant "services.msc" dans la barre de recherche). Trouvez le service que vous avez créé et démarrez-le.

Conclusion

Cet exemple simple vous a montré les étapes de base de la création et du déploiement d'un service Windows .NET. Vous pouvez adapter ce code de base à vos besoins spécifiques en utilisant des API .NET pour interagir avec les fichiers, les bases de données, les services web, etc. N'oubliez pas que les services Windows .NET sont un excellent choix pour automatiser des tâches et améliorer les performances de vos applications.