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

Traductions disponibles Traductions disponibles
Numéro d'article: 317421 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F317421
Agrandir tout | Réduire tout

Sommaire

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.

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.

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.

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.

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.

Liste complète du code (Service1.vb)

Imports System.ServiceProcess

Public 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 Sub

End Class

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".

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.
Débogage d'applications de service Windows
ms-help://MS.VSCC/MS.MSDNVS/vbcon/html/vbtskdebuggingserviceapplications.htm
REMARQUE : ce lien est disponible uniquement si la documentation Microsoft Visual Studio .NET est installée sur votre ordinateur.

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 :
Introduction aux applications de service Windows
ms-help://MS.NETFrameworkSDK/cpguidenf/html/cpconIntroductionToNTServiceApplications.htm
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

Propriétés

Numéro d'article: 317421 - Dernière mise à jour: mercredi 30 avril 2003 - Version: 1.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual Basic .NET 2002 Initiation
Mots-clés : 
kbhowto kbhowtomaster KB317421
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com