Procédure : écrire les services par programmation

Avertissement

Cette documentation ne concerne pas la dernière version du service Windows. Pour obtenir le contenu le plus récent sur les services Windows utilisant BackgroundService et le modèle de service Worker, consultez :

Si vous choisissez de ne pas utiliser le modèle de projet Service Windows, vous pouvez écrire vos propres services en configurant vous-même l’héritage et d’autres éléments d’infrastructure. Quand vous créez un service par programmation, vous devez effectuer plusieurs étapes qui sont normalement gérées pour vous par le modèle :

  • Vous devez configurer votre classe de service pour qu’elle hérite de la classe ServiceBase.

  • Vous devez créer une méthode Main pour votre projet de service qui définit les services à exécuter et appelle la méthode Run sur ceux-ci.

  • Vous devez substituer les procédures OnStart et OnStop et indiquer le code que vous souhaitez qu’elles exécutent.

Pour écrire un service par programmation

  1. Créez un projet vide, puis une référence aux espaces de noms nécessaires. Pour cela, effectuez les étapes suivantes :

    1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud Références, puis cliquez sur Ajouter une référence.

    2. Sous l’onglet .NET Framework, faites défiler jusqu’à System.dll, puis cliquez sur Sélectionner.

    3. Faites défiler jusqu’à System.Diagnostics.dll, puis cliquez sur Sélectionner.

    4. Cliquez sur OK.

  2. Ajoutez une classe et configurez-la pour qu’elle hérite de ServiceBase :

    public class UserService1 : System.ServiceProcess.ServiceBase
    {
    }
    
    Public Class UserService1
        Inherits System.ServiceProcess.ServiceBase
    End Class
    
  3. Ajoutez le code suivant pour configurer votre classe de service :

    public UserService1()
    {
        this.ServiceName = "MyService2";
        this.CanStop = true;
        this.CanPauseAndContinue = true;
        this.AutoLog = true;
    }
    
    Public Sub New()
        Me.ServiceName = "MyService2"
        Me.CanStop = True
        Me.CanPauseAndContinue = True
        Me.AutoLog = True
    End Sub
    
  4. Créez une méthode Main pour votre classe, et utilisez-la pour définir le service qui sera contenu dans votre classe. userService1 est le nom de la classe :

    public static void Main()
    {
        System.ServiceProcess.ServiceBase.Run(new UserService1());
    }
    
    Shared Sub Main()
        System.ServiceProcess.ServiceBase.Run(New UserService1)
    End Sub
    
  5. Substituez la méthode OnStart, et définissez le traitement qui doit se produire au démarrage de votre service.

    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. Substituez les autres méthodes pour lesquelles vous souhaitez définir un traitement personnalisé, et écrivez le code nécessaire pour déterminer les actions que le service doit prendre dans chaque cas.

  7. Ajoutez les programmes d'installation nécessaires à votre application de service. Pour plus d’informations, consultez Guide pratique pour ajouter des programmes d’installation à votre application de service.

  8. Générez votre projet en sélectionnant Générer la solution dans le menu Générer.

    Notes

    N'appuyez pas sur la touche F5 pour exécuter votre projet : vous ne pouvez pas exécuter un projet de service de cette manière.

  9. Créez un projet d’installation et les actions personnalisées pour installer votre service. Pour obtenir un exemple, consultez Procédure pas à pas : création d’une application de service Windows dans le Concepteur de composants.

  10. Installez le service. Pour plus d'informations, consultez How to: Install and Uninstall Services.

Voir aussi