Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

COMMENT FAIRE : Créer un projet de configuration pour un service Windows dans Visual Basic .NET

Ancien nº de publication de cet article : F317421
Résumé
Cet article explique comment créer un projet de configuration pour une application de service Windows (anciennement appelé "Service NT"). Pour cela, vous devez tout d'abord créer une solution qui contient un projet simple de service Windows et qui écrit une entrée dans son journal Application. Vous ajoutez ensuite un projet de configuration à la solution pour installer le service Windows. Pour finir, vous démarrez le service à partir de l'Explorateur de serveurs de Visual Studio .NET.

retour au début

Conditions requises

La liste suivante indique le matériel, les logiciels, l'infrastructure réseau recommandés et les Service Packs dont vous avez besoin :
  • Microsoft Windows 2000 Professionnel, Microsoft Windows 2000 Server, Microsoft Windows XP Professionnel ou Microsoft Windows XP Server avec Microsoft .NET Framework installé
  • Microsoft Visual Studio .NET Enterprise ou Microsoft Visual Studio .NET Enterprise Architect
Cet article considère que vous possédez des connaissances générales sur les services Windows. Si ce n'est pas le cas, reportez-vous à la première référence de la section RÉFÉRENCES.

Cet article considère également que le compte d'utilisateur que vous utilisez pour installer et exécuter ce service dispose non seulement des autorisations nécessaires pour installer et pour démarrer des services mais aussi des autorisations nécessaires pour accéder au journal des événements.

retour au début

Création d'un projet de configuration pour un service Windows

Cette section décrit comment créer un projet de service Windows et utiliser un projet de configuration compilé pour installer le service Windows.

retour au début

Création d'un projet de service Windows

  1. Dans le menu Démarrer, pointez sur Programmes, sur Microsoft Visual Studio .NET, puis cliquez sur Microsoft Visual Studio .NET.
  2. Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet.
  3. Dans la boîte de dialogue Nouveau projet, procédez comme suit :
    1. Sous Types de projets, cliquez sur Projets Visual Basic.
    2. Sous Modèles, cliquez sur Service Windows.
    3. Dans la zone de texteNom, tapez LogWriterService.
    4. Dans la zone de texte Emplacement, tapez C:\, puis cliquez sur OK.
  4. Dans la fenêtre de l'Explorateur de solutions, cliquez avec le bouton droit sur Service1.vb, puis cliquez sur Afficher le code.
  5. Dans le gestionnaire d'événements OnStart, remplacez les commentaires par le code suivant :
    EventLog.WriteEntry("Démarrage de mon service simple.")
  6. Dans l'Explorateur de solutions, double-cliquez sur Service1.vb.
  7. Dans la boîte de dialogue Propriétés, cliquez sur Ajouter un programme d'installation.
  8. Dans la boîte de dialogue Propriétés de ServiceInstaller1, définissez la propriété ServiceName sur LogWriterService.
  9. Dans la fenêtre Éditeur de code en mode Création, cliquez sur ServiceProcessInstaller1.
  10. Dans la boîte de dialogue Propriétés, définissez la propriété Compte sur LocalService.
retour au début

Utilisation d'un projet de configuration compilé pour installer le service Windows

Une fois terminées les étapes de la section précédente relative à la configuration du projet de service Windows, procédez comme suit pour ajouter un projet de déploiement qui assemble l'application du service en vue de son installation :
  1. Pour ajouter un nouveau projet à votre projet LogWriterService, procédez comme suit :
    1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Solution 'LogWriterService', pointez sur Ajouter, puis cliquez sur Nouveau projet.
    2. Sous Types de projets, cliquez sur Projets de configuration et de déploiement.
    3. Sous Modèles, cliquez sur Projet de configuration.
    4. Dans la zone de texte Nom, tapez ServiceSetup.
    5. Dans la zone de texte Emplacement, tapez C:\, puis cliquez sur OK.
  2. Pour indiquer au projet de déploiement ce qu'il doit assembler, procédez comme suit :
    1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur ServiceSetup, pointez sur Ajouter, puis cliquez sur Sortie de projet.
    2. Dans la boîte de dialogue Ajouter le groupe de sorties du projet, cliquez sur LogWriterService dans la zone Projet.
    3. Cliquez sur Sortie principale, puis sur OK.
  3. Pour que votre installation soit correcte, il vous suffit d'ajouter une sortie principale. Pour ajouter les actions personnalisées, procédez comme suit :
    1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur ServiceSetup, pointez sur Affichage, puis cliquez sur Actions personnalisées.
    2. Cliquez avec le bouton droit sur Actions personnalisées, puis cliquez sur Ajouter une action personnalisée.
    3. Cliquez sur Dossier d'application, puis sur OK.
    4. Cliquez sur Sortie principale de LogWriterService (Active), puis sur OK. Notez que Sortie principale apparaît sous Installer, Valider, Restaurer et Désinstaller.
  4. Les projets de configuration ne sont pas inclus dans la configuration de génération par défaut. Pour générer la solution, procédez comme suit :
    1. Cliquez avec le bouton droit sur LogWriterService, puis cliquez sur Générer. Ensuite, cliquez avec le bouton droit sur ServiceSetup, puis cliquez sur Générer.

      -ou-

      Dans le menu Génération, cliquez sur Gestionnaire de configuration pour générer la solution entière en une fois. Activez la case à cocherGénérer pour ServiceSetup.
    2. Appuyez sur la combinaison de touches CTRL+MAJ+B pour générer la solution entière. Une fois la solution générée, vous disposez d'un package d'installation complet pour le service.
  5. Pour installer le service nouvellement créé, cliquez avec le bouton droit sur ServiceSetup, puis cliquez sur Installer.
  6. Dans la boîte de dialogue ServiceSetup, cliquez trois fois sur Suivant. Remarquez l'apparition d'une barre de progression pendant que le service s'installe.
  7. Une fois le service installé, cliquez sur Fermer.
retour au début

Liste complète du code (Service1.vb)

Imports System.ServiceProcessPublic Class Service1    Inherits System.ServiceProcess.ServiceBase#Region " Code généré par le Concepteur de composants "    Public Sub New()        MyBase.New()        ' Le Concepteur de composants impose cet appel.        InitializeComponent()        ' Ajoute toute initialisation après l'appel InitializeComponent().    End Sub    'La méthode substituée Dispose du UserService pour nettoyer la liste des composants.    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)        If disposing Then            If Not (components Is Nothing) Then                components.Dispose()            End If        End If        MyBase.Dispose(disposing)    End Sub    ' Il s'agit du point d'entrée principale du processus.    <MTAThread()>_    Shared Sub Main()        Dim ServicesToRun() As System.ServiceProcess.ServiceBase        ' Plusieurs Services NT peuvent s'exécuter dans le même processus. Pour ajouter        ' un autre service à ce processus, modifiez la ligne de code        ' suivante pour créer un deuxième objet de service. Par exemple,        '        'ServicesToRun = New System.ServiceProcess.ServiceBase () {New Service1, New MySecondUserService}        '        ServicesToRun = New System.ServiceProcess.ServiceBase () {New Service1}        System.ServiceProcess.ServiceBase.Run(ServicesToRun)    End Sub    ' Le Concepteur de composants impose ce code.    Private components As System.ComponentModel.IContainer    ' REMARQUE : le Concepteur de composants impose la procédure suivante.    ' Vous pouvez modifier la procédure à l'aide du Concepteur de composants.    ' Toutefois, utilisez plutôt l'éditeur de code pour opérer cette modification.    <System.Diagnostics.DebuggerStepThrough()>Private Sub InitializeComponent()        components = New System.ComponentModel.Container()        Me.ServiceName = "Service1"    End Sub#End Region    Protected Overrides Sub OnStart(ByVal args() As String)        EventLog.WriteEntry("Démarrage de mon service simple.")    End Sub    Protected Overrides Sub OnStop()    End SubEnd Class
retour au début

Vérification du fonctionnement

  1. Dans le menu Démarrer, pointez sur Panneau de configuration, sur Outils d'administration, puis cliquez sur Services.
  2. Cliquez avec le bouton droit sur Service1, puis cliquez sur Démarrer.
  3. Utilisez l'une des méthodes suivantes pour vérifier qu'un événement est consigné dans le journal des événements :
    • Dans le menu Démarrer , pointez sur Panneau de configuration, sur Outils d'administration, et cliquez sur Observateur d'événements. Cliquez sur Journal Application dans le volet gauche, puis repérez le journal des événements associé à votre service dans le volet droit.
    • Dans l'Explorateur de serveurs, développez les Serveurs, le Nomd'Ordinateur, les Journaux des événements, l'Application et les nœuds Service1. Rappelez-vous que Service1 est le nom de la classe, et non celui du service lui-même. En conséquence, Service1 est utilisé comme nom de l'application. (Expliquer comment personnaliser les noms dépasse le cadre de cet article). Déplacez le curseur sur les entrées du journal. La deuxième entrée à partir du haut doit être "Démarrage de mon service simple".
retour au début

Dépannage

La documentation du Kit de développement Framework SDK indique :
Le fichier exécutable compilé créé par un projet d'application de service doit être préalablement installé sur le serveur pour que le projet puisse fonctionner de façon significative. Vous ne pouvez pas déboguer ni exécuter une application de service en appuyant sur F5 ou F11 ; vous ne pouvez pas exécuter immédiatement un service ni entrer dans son code. Au lieu de cela, vous devez installer et démarrer votre service, puis attacher un débogueur au processus du service.
Pour plus d'informations, reportez-vous à la rubrique suivante dans la documentation d'aide en ligne de Microsoft Visual Studio .NET. REMARQUE : ce lien est disponible uniquement si la documentation Microsoft Visual Studio .NET est installée sur votre ordinateur.

retour au début
Références
Pour créer un service Windows utile qui montre comment installer, tester et déboguer le service, reportez-vous à la documentation du Kit de développement Microsoft .NET Framework SDK suivante : REMARQUE : ce lien est disponible uniquement si la documentation Microsoft .NET Framework est installée sur votre ordinateur.

Pour plus d'informations, reportez-vous à l'article suivant issu de l'édition de décembre 2001 de MSDN Magazine :
Services Windows : Les nouvelles classes de base dans .NET facilitent l'écriture de service Windows
http://msdn.microsoft.com/msdnmag/issues/01/12/NetServ/NetServ.asp
retour au début
Propriétés

ID d'article : 317421 - Dernière mise à jour : 04/30/2003 16:24:00 - Révision : 1.0

Microsoft Visual Basic .NET 2002 Initiation

  • kbhowto kbhowtomaster KB317421
Commentaires
>