ServiceBase.OnStart(String[]) ServiceBase.OnStart(String[]) ServiceBase.OnStart(String[]) ServiceBase.OnStart(String[]) Method

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).When implemented in a derived class, executes when a Start command is sent to the service by the Service Control Manager (SCM) or when the operating system starts (for a service that starts automatically). Gibt Aktionen an, die beim Starten des Diensts ausgeführt werden müssen.Specifies actions to take when the service starts.

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.Data passed by the start command.

Hinweise

Verwenden OnStart Sie, um die Verarbeitung anzugeben, die auftritt, wenn der Dienst einen Start Befehl empfängt.Use OnStart to specify the processing that occurs when the service receives a Start command. OnStartdie Methode, mit der das Verhalten des Dienstanbieter angegeben wird.OnStart is the method in which you specify the behavior of the service. OnStartkann Argumente als Möglichkeit annehmen, Daten zu übergeben, aber diese Verwendung ist selten.OnStart can take arguments as a way to pass data, but this usage is rare.

Achtung

Verwenden Sie den-Konstruktor nicht, um die Verarbeitung durchzuführen OnStart, die sich in befinden sollte.Do not use the constructor to perform processing that should be in OnStart. Verwenden OnStart Sie, um die gesamte Initialisierung des Diensts zu verarbeiten.Use OnStart to handle all initialization of your service. Der Konstruktor wird aufgerufen, wenn die ausführbare Datei der Anwendung ausgeführt wird, und nicht, wenn der Dienst ausgeführt wird.The constructor is called when the application's executable runs, not when the service runs. Die ausführbare Datei OnStartwird vor ausgeführt.The executable runs before OnStart. Wenn Sie den Vorgang fortsetzen, wird der Konstruktor beispielsweise nicht erneut aufgerufen, da das Objekt bereits im Speicher vorhanden ist.When you continue, for example, the constructor is not called again because the SCM already holds the object in memory. Wenn OnStop Ressourcen freigibt, die im-Konstruktor und OnStartnicht in zugeordnet sind, werden die benötigten Ressourcen nicht erneut erstellt, wenn der Dienst zum zweiten Mal aufgerufen wird.If OnStop releases resources allocated in the constructor rather than in OnStart, the needed resources would not be created again the second time the service is called.

Dienste können so festgelegt werden, dass Sie automatisch gestartet werden, wenn der StartType Computer neu gestartet wird, indem AutomaticSie für das Installationsprogramm des Diensts festlegenServices can be set to start automatically when the computer reboots by setting the StartType on the service's installer to Automatic. In einer solchen Situation OnStart wird beim Systemstart aufgerufen.In such a situation, OnStart would be called at system startup.

OnStartEs wird erwartet, dass in der abgeleiteten Klasse überschrieben wird.OnStart is expected to be overridden in the derived class. Damit der Dienst nützlich ist, OnStart sollten und OnStop in ihrer Dienstklasse implementiert werden.For the service to be useful, OnStart and OnStop should both be implemented in your service class.

Prozess Initialisierungs Argumente für den Dienst in der OnStart -Methode, nicht in der Main-Methode.Process initialization arguments for the service in the OnStart method, not in the Main method. Die Argumente im args Parameter Array können im Eigenschaften Fenster für den Dienst in der Dienste-Konsole manuell festgelegt werden.The arguments in the args parameter array can be set manually in the properties window for the service in the Services console. Die in der Konsole eingegebenen Argumente werden nicht gespeichert. Sie werden einmal an den Dienst übermittelt, wenn der Dienst über die Systemsteuerung gestartet wird.The arguments entered in the console are not saved; they are passed to the service on a one-time basis when the service is started from the control panel. Argumente, die vorhanden sein müssen, wenn der Dienst automatisch gestartet wird, können im ImagePath-Zeichen folgen Wert für den Registrierungsschlüssel des dienstangs (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<Service Name > ).Arguments that must be present when the service is automatically started can be placed in the ImagePath string value for the service's registry key (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<service name>). Sie können die Argumente aus der Registrierung mithilfe der GetCommandLineArgs -Methode abrufen, z. b.:. string[] imagePathArgs = Environment.GetCommandLineArgs();You can obtain the arguments from the registry using the GetCommandLineArgs method, for example: string[] imagePathArgs = Environment.GetCommandLineArgs();.

Gilt für:

Siehe auch