ServiceBase.OnStart(String[]) Metoda

Definicja

Po zaimplementowaniu w klasie pochodnej jest wykonywane, gdy polecenie uruchamiania jest wysyłane do usługi przez menedżera kontroli usług (SCM) lub podczas uruchamiania systemu operacyjnego (w przypadku usługi, która jest uruchamiana automatycznie).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). Określa akcje, które należy wykonać, gdy usługa zostanie uruchomiona.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())

Parametry

args
String[]

Dane przesłane przez polecenie uruchomienia.Data passed by the start command.

Uwagi

Użyj, OnStart Aby określić przetwarzanie, które ma miejsce, gdy usługa odbierze polecenie uruchomienia.Use OnStart to specify the processing that occurs when the service receives a Start command. OnStartto metoda, w której należy określić zachowanie usługi.OnStart is the method in which you specify the behavior of the service. OnStartmoże przyjmować argumenty jako sposób przekazywania danych, ale to użycie jest rzadkie.OnStart can take arguments as a way to pass data, but this usage is rare.

Przestroga

Nie używaj konstruktora do przeprowadzenia przetwarzania, które powinno znajdować się w OnStart .Do not use the constructor to perform processing that should be in OnStart. Użyj OnStart , aby obsłużyć wszystkie inicjalizacje usługi.Use OnStart to handle all initialization of your service. Konstruktor jest wywoływany, gdy jest uruchamiany plik wykonywalny aplikacji, a nie w momencie uruchomienia usługi.The constructor is called when the application's executable runs, not when the service runs. Plik wykonywalny jest uruchamiany przed OnStart .The executable runs before OnStart. W przypadku kontynuowania, na przykład, Konstruktor nie jest wywoływany ponownie, ponieważ menedżer SCM już utrzymuje obiekt w pamięci.When you continue, for example, the constructor is not called again because the SCM already holds the object in memory. Jeśli OnStop zwalnia zasoby przydzieloną w konstruktorze, a nie w OnStart , wymagane zasoby nie zostaną utworzone ponownie podczas drugiego wywołania usługi.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.

Usługi można skonfigurować tak, aby uruchamiały się automatycznie po ponownym uruchomieniu komputera przez ustawienie ustawienia StartType w instalatorze usługi na Automatic .Services can be set to start automatically when the computer reboots by setting the StartType on the service's installer to Automatic. W takiej sytuacji jest OnStart wywoływana podczas uruchamiania systemu.In such a situation, OnStart would be called at system startup.

OnStartpowinien zostać przesłonięty w klasie pochodnej.OnStart is expected to be overridden in the derived class. Aby usługa była użyteczna OnStart i OnStop powinna być zaimplementowana w klasie usługi.For the service to be useful, OnStart and OnStop should both be implemented in your service class.

Argumenty inicjowania procesu dla usługi w OnStart metodzie, a nie w metodzie Main.Process initialization arguments for the service in the OnStart method, not in the Main method. Argumenty w args tablicy parametrów można ustawić ręcznie w oknie właściwości dla usługi w konsoli usługi.The arguments in the args parameter array can be set manually in the properties window for the service in the Services console. Argumenty wprowadzone w konsoli nie są zapisywane; są one przenoszone do usługi w jeden raz, gdy usługa jest uruchamiana z poziomu panelu sterowania.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. Argumenty, które muszą być obecne, gdy usługa jest uruchamiana automatycznie, można umieścić w wartości ciągu ImagePath dla klucza rejestru usługi (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>). Argumenty można uzyskać z rejestru przy użyciu GetCommandLineArgs metody, na przykład: string[] imagePathArgs = Environment.GetCommandLineArgs(); .You can obtain the arguments from the registry using the GetCommandLineArgs method, for example: string[] imagePathArgs = Environment.GetCommandLineArgs();.

Dotyczy

Zobacz też