Share via


ServiceBase.OnStart(String[]) Méthode

Définition

Si elle est implémentée dans une classe dérivée, cette méthode s'exécute lorsqu'une commande Démarrer est envoyée au service par le Gestionnaire de contrôle des services (SCM) ou lorsque le système d'exploitation démarre (pour un service qui démarre automatiquement). Spécifie les actions à effectuer lorsque le service démarre.

protected:
 virtual void OnStart(cli::array <System::String ^> ^ args);
protected virtual void OnStart (string[] args);
abstract member OnStart : string[] -> unit
override this.OnStart : string[] -> unit
Protected Overridable Sub OnStart (args As String())

Paramètres

args
String[]

Données passées par la commande de démarrage.

Remarques

Permet OnStart de spécifier le traitement qui se produit lorsque le service reçoit une commande Start. OnStart est la méthode dans laquelle vous spécifiez le comportement du service. OnStart peut prendre des arguments comme moyen de transmettre des données, mais cette utilisation est rare.

Attention

N’utilisez pas le constructeur pour effectuer le traitement qui doit se trouver dans OnStart. Permet OnStart de gérer toute l’initialisation de votre service. Le constructeur est appelé lorsque l’exécutable de l’application s’exécute, et non lorsque le service s’exécute. L’exécutable s’exécute avant OnStart. Lorsque vous continuez, par exemple, le constructeur n’est pas appelé à nouveau, car le SCM contient déjà l’objet en mémoire. Si OnStop les ressources libérées sont allouées dans le constructeur plutôt que dans OnStart, les ressources nécessaires ne sont pas créées à nouveau la deuxième fois que le service est appelé.

Les services peuvent être définis pour démarrer automatiquement lorsque l’ordinateur redémarre en définissant le StartType programme d’installation Automaticdu service sur . Dans une telle situation, OnStart il serait appelé au démarrage du système.

OnStart est censé être remplacé dans la classe dérivée. Pour que le service soit utile OnStart et OnStop doit être implémenté dans votre classe de service.

Traiter les arguments d’initialisation pour le service dans la OnStart méthode, et non dans la méthode Main. Les arguments du args tableau de paramètres peuvent être définis manuellement dans la fenêtre propriétés du service dans la console Services. Les arguments entrés dans la console ne sont pas enregistrés ; ils sont transmis au service une seule fois lorsque le service est démarré à partir du panneau de configuration. Les arguments qui doivent être présents lorsque le service est démarré automatiquement peuvent être placés dans la valeur de chaîne ImagePath pour la clé de Registre du service (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<service name>). Vous pouvez obtenir les arguments du Registre à l’aide de la GetCommandLineArgs méthode, par exemple : string[] imagePathArgs = Environment.GetCommandLineArgs();.

S’applique à

Voir aussi