Comment : écrire les services par programme
Mise à jour : novembre 2007
Si vous choisissez de ne pas utiliser le modèle de projet de service Windows, vous pouvez développer vos propres services en configurant vous-même l'héritage et d'autres éléments d'infrastructure. Lorsque vous créez un service par programme, vous devez accomplir les tâches suivantes que le modèle prendrait autrement en charge à votre place :
Vous devez configurer votre classe de service de telle sorte qu'elle hérite de la classe ServiceBase.
Vous devez créer pour votre projet de service une méthode Main qui définit les services à exécuter et qui appelle pour eux la méthode Run.
Vous devez substituer les procédures OnStart et OnStop, et fournir le code que vous voulez qu'elles exécutent.
Remarque : Le modèle de service Windows, ainsi que les fonctionnalités associées, ne sont pas disponibles dans la version standard de Visual Studio.
Pour créer un service par programme
Créez un projet vide et une référence aux espaces de noms nécessaires en suivant ces étapes :
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nœud Références et cliquez sur Ajouter une référence.
Sous l'onglet .NET Framework, placez-vous sur System.dll et cliquez sur Sélectionner.
Placez-vous sur System.Diagnostics.dll et cliquez sur Sélectionner.
Cliquez sur OK.
Ajoutez une classe et configurez-la pour qu'elle hérite de ServiceBase :
Public Class UserService1 Inherits System.ServiceProcess.ServiceBase End Class
public class UserService1 : System.ServiceProcess.ServiceBase { }
public class UserService1 extends System.ServiceProcess.ServiceBase { }
Ajoutez le code suivant pour configurer votre classe de service :
Public Sub New() Me.ServiceName = "MyService2" Me.CanStop = True Me.CanPauseAndContinue = True Me.AutoLog = True End Sub
public UserService1() { this.ServiceName = "MyService2"; this.CanStop = true; this.CanPauseAndContinue = true; this.AutoLog = true; }
public UserService1() { this.set_ServiceName("MyService2"); this.set_CanStop(true); this.set_CanPauseAndContinue(true); this.set_AutoLog(true); }
Créez une méthode Main pour votre classe et utilisez-la pour définir le service que votre classe contiendra ; userService1 est le nom de la classe :
Shared Sub Main() System.ServiceProcess.ServiceBase.Run(New UserService1) End Sub
public static void Main() { System.ServiceProcess.ServiceBase.Run(new UserService1()); }
public static void main() { System.ServiceProcess.ServiceBase.Run(new UserService1()); }
Substituez la méthode OnStart et définissez le traitement que vous voulez lancer au démarrage de votre service.
Protected Overrides Sub OnStart(ByVal args() As String) ' Insert code here to define processing. End Sub
protected override void OnStart(string[] args) { // Insert code here to define processing. }
protected void OnStart(System.String[] args) { // Insert code here to define processing. }
Substituez toutes les méthodes pour lesquelles vous voulez définir un traitement personnalisé et écrivez du code pour déterminer les actions que le service doit accomplir dans chaque cas.
Ajoutez les programmes d'installation nécessaires à votre application de service. Pour plus d'informations, consultez Comment : ajouter des programmes d'installation à votre application de service.
Générez votre projet en sélectionnant Générer la solution dans le menu Générer.
Remarque : N'appuyez pas sur la touche F5 pour exécuter le projet ; il n'est pas possible d'exécuter un projet de service de cette manière.
Créez un projet d'installation et des actions personnalisées pour installer votre service. Pour un exemple, consultez Procédure pas à pas : création d'une application de service Windows dans le Concepteur de composants.
Installez le service. Pour plus d'informations, consultez Comment : installer et désinstaller des services.
Voir aussi
Tâches
Comment : créer des services Windows
Comment : ajouter des programmes d'installation à votre application de service
Comment : enregistrer des informations relatives aux services
Procédure pas à pas : création d'une application de service Windows dans le Concepteur de composants
Procédure pas à pas : création d'une action personnalisée