Partager via


Comment : créer des instances du composant ServiceController

Mise à jour : novembre 2007

Vous pouvez utiliser le composant ServiceController pour vous connecter à des services existants et contrôler leur comportement. Lorsque vous créez une instance de la classe ServiceController, vous définissez ses propriétés de façon à ce qu'elle interagisse avec un service Windows spécifique. Vous pouvez ensuite utiliser la classe pour démarrer, arrêter et manipuler à votre gré le service concerné.

Vous utiliserez plus probablement un ServiceController pour des tâches administratives. Par exemple, vous pouvez créer une application Windows ou une application Web ASP.NET qui envoie des commandes personnalisées à un service par le biais d'une instance du composant ServiceController. Cela peut s'avérer utile dans la mesure où le Gestionnaire de contrôle des services ne prend pas en charge les commandes personnalisées.

Il existe différentes façons de créer une instance du composant ServiceController :

  • Vous pouvez faire glisser une instance du composant ServiceController de l'onglet Composants de la Boîte à outils vers un formulaire ou tout autre concepteur.

  • Vous pouvez ajouter un composant ServiceController à votre concepteur à partir de l'Explorateur de serveurs.

  • Vous pouvez créer une instance de la classe ServiceController dans le code.

Après avoir créé une instance de ServiceController, vous devez définir deux propriétés sur celle-ci pour identifier le service avec lequel elle interagit : le nom de l'ordinateur et celui du service à contrôler.

Remarque :

Par défaut, MachineName a pour valeur le nom de l'ordinateur local, si bien que vous n'avez pas besoin de la modifier, sauf si vous voulez que l'instance du composant pointe vers un autre ordinateur.

Remarque :

Selon vos paramètres actifs ou votre édition, les boîtes de dialogue et les commandes de menu que vous voyez peuvent différer de celles qui sont décrites dans l'aide. Pour modifier vos paramètres, choisissez Importation et exportation de paramètres dans le menu Outils. Pour plus d'informations, consultez Paramètres Visual Studio.

Pour créer et configurer un composant ServiceController à partir de l'Explorateur de serveurs

  1. Dans l'Explorateur de serveurs, ajoutez le serveur souhaité s'il ne figure pas déjà dans la liste. Pour plus d'informations, consultez Comment : accéder à l'Explorateur de serveurs/bases de données et l'initialiser.

  2. Développez le nœud Services, puis recherchez le service sur lequel vous voulez effectuer des tâches administratives.

  3. Cliquez avec le bouton droit sur le nom du service, puis cliquez sur Ajouter au Concepteur.

    Vous voyez apparaître dans votre projet un composant ServiceController configuré pour interagir avec le service sélectionné.

Pour créer et configurer un composant ServiceController à partir de la Boîte à outils

  1. Cliquez sur l'onglet Composants de la Boîte à outils.

  2. Sélectionnez l'icône ServiceController et faites-la glisser jusqu'à l'aire du concepteur de votre formulaire ou composant.

  3. Définissez les propriétés suivantes.

    Propriété

    Valeur

    MachineName

    Nom de l'ordinateur sur lequel le service existe ou "." pour l'ordinateur local.

    ServiceName

    Nom du service avec lequel vous voulez interagir.

    Conseil :

    Vous pouvez utiliser l'Explorateur de serveurs pour connaître la valeur qui doit être affectée à ServiceName pour un service donné. Sélectionnez le service qui vous intéresse dans l'Explorateur de serveurs ; vous voyez alors apparaître la valeur de sa propriété ServiceName dans la fenêtre Propriétés.

Pour créer et configurer par programme un composant ServiceController

  1. Créez une instance de la classe ServiceController dans votre code.

  2. Définissez les propriétés MachineName et ServiceName pour indiquer le service que vous souhaitez contrôler.

    L'exemple suivant montre comment créer un composant ServiceController qui interagit avec le service de l'administration IIS sur l'ordinateur local. Le composant interroge alors le service associé au contrôleur pour déterminer s'il peut accepter des commandes d'arrêt et, dans l'affirmative, émet la commande. Cet exemple est extrait d'un projet Windows dans lequel un formulaire doté de divers boutons est utilisé pour démarrer, arrêter et manipuler le service. Chaque fois qu'un clic est effectué sur un bouton, la condition est évaluée et des informations d'état sont affichées dans un contrôle Label.

    Remarque :

    Avant l'exécution de ces exemples, vous devez ajouter une référence à System.ServiceProcess.dll et inclure une instruction Imports ou using pour l'espace de noms System.ServiceProcess.

    Sub Main()
        Dim myController As _
           New System.ServiceProcess.ServiceController("IISAdmin")
    
        If myController.CanStop Then
            Debug.WriteLine(myController.ServiceName & " can be stopped.")
        Else
            Debug.WriteLine(myController.ServiceName & " cannot stop.")
        End If
    End Sub
    
     public static void Main(string[] args)
        {
            System.ServiceProcess.ServiceController myController =
               new System.ServiceProcess.ServiceController("IISAdmin");
            if (myController.CanStop)
            {
                System.Diagnostics.Debug.WriteLine(
                   myController.DisplayName + "  can be stopped.");
            }
            else
            {
                System.Diagnostics.Debug.WriteLine(
                   myController.DisplayName + "  cannot stop.");
            }
        }
    

Voir aussi

Tâches

Comment : effectuer des tâches administratives sur des services

Comment : récupérer des listes de services

Concepts

Introduction à la communication avec des services existants