ServiceBase.OnStart(String[]) Methode

Definition

Wird bei der Implementierung in einer abgeleiteten Klasse ausgeführt, wenn der Dienststeuerungs-Manager einen Befehl zum Starten an den Dienst sendet oder wenn das Betriebssystem gestartet wird (diese gilt für Dienste, die automatisch gestartet werden). Gibt Aktionen an, die beim Starten des Diensts ausgeführt werden müssen.

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())

Parameter

args
String[]

Vom Befehl zum Starten übergebene Daten.

Hinweise

Geben Sie OnStart die Verarbeitung an, die auftritt, wenn der Dienst einen Startbefehl empfängt. OnStart ist die Methode, in der Sie das Verhalten des Diensts angeben. OnStart Kann Argumente als Möglichkeit zum Übergeben von Daten ergreifen, aber diese Verwendung ist selten.

Achtung

Verwenden Sie den Konstruktor nicht, um die Verarbeitung auszuführen, die in OnStartsein soll. Verwenden Sie OnStart zum Behandeln aller Initialisierung Ihres Diensts. Der Konstruktor wird aufgerufen, wenn die ausführbare Ausführung der Anwendung ausgeführt wird, nicht wenn der Dienst ausgeführt wird. Die ausführbare Datei wird vor OnStart. Wenn Sie fortfahren, wird der Konstruktor z. B. nicht erneut aufgerufen, da der SCM bereits das Objekt im Arbeitsspeicher enthält. Wenn OnStop Ressourcen, die im Konstruktor zugewiesen sind, statt in OnStart, werden die erforderlichen Ressourcen nicht erneut erstellt, wenn der Dienst aufgerufen wird.

Dienste können automatisch gestartet werden, wenn der Computer neu gestartet wird, indem sie das StartType Installationsprogramm des Diensts auf Automaticfestlegen. In einer solchen Situation OnStart würde der Systemstart aufgerufen.

OnStart wird erwartet, dass die abgeleitete Klasse außer Kraft gesetzt wird. Damit der Dienst nützlich sein kann und OnStart OnStop beide in Ihrer Dienstklasse implementiert werden sollen.

Prozess initialisierungsargumente für den Dienst in der Methode, nicht in der OnStart Main-Methode. Die Argumente im Parameterarray können manuell im Eigenschaftenfenster für den Dienst in args der Dienstkonsole festgelegt werden. Die in der Konsole eingegebenen Argumente werden nicht gespeichert; sie werden auf einmaliger Basis an den Dienst übergeben, wenn der Dienst aus der Systemsteuerung gestartet wird. Argumente, die vorhanden sein müssen, wenn der Dienst automatisch gestartet wird, können im ImagePath-Zeichenfolgenwert für den Registrierungsschlüssel des Diensts (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<service name>) platziert werden. Sie können die Argumente aus der Registrierung mithilfe der GetCommandLineArgs Methode abrufen, z. B. : string[] imagePathArgs = Environment.GetCommandLineArgs();

Gilt für

Siehe auch