ServiceBase.OnStart(String[]) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Po zaimplementowaniu w klasie pochodnej program wykonuje polecenie Uruchamiania do usługi przez menedżera kontroli usług (SCM) lub po uruchomieniu systemu operacyjnego (w przypadku usługi uruchamianej automatycznie). Określa akcje, które mają być podejmowane po uruchomieniu usługi.
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 przekazane przez polecenie start.
Uwagi
Użyj OnStart polecenia , aby określić przetwarzanie, które występuje, gdy usługa otrzymuje polecenie Uruchamiania. OnStart to metoda, w której określasz zachowanie usługi. OnStart może przyjmować argumenty jako sposób przekazywania danych, ale to użycie jest rzadkie.
Caution
Nie należy używać konstruktora do wykonywania przetwarzania, które powinny znajdować się w obiekcie OnStart. Służy OnStart do obsługi wszystkich inicjowania usługi. Konstruktor jest wywoływany, gdy plik wykonywalny aplikacji jest uruchamiany, a nie wtedy, gdy usługa jest uruchomiona. Plik wykonywalny jest uruchamiany przed OnStart. Na przykład po kontynuowaniu konstruktor nie jest wywoływany ponownie, ponieważ program SCM przechowuje już obiekt w pamięci. Jeśli OnStop zwalnia zasoby przydzielone w konstruktorze, a nie w OnStartprogramie , wymagane zasoby nie zostaną utworzone ponownie po drugim wywołaniu usługi.
Usługi można ustawić tak, aby uruchamiały się automatycznie po ponownym uruchomieniu komputera, ustawiając StartType w instalatorze usługi wartość Automatic. W takiej sytuacji OnStart zostanie wywołana podczas uruchamiania systemu.
OnStart oczekuje się, że zostanie zastąpiony w klasie pochodnej. Aby usługa byłaby przydatna i OnStartOnStop powinna być zaimplementowana w klasie usługi.
Argumenty inicjowania procesu dla usługi w metodzie OnStart , a nie w metodzie Main. Argumenty w tablicy args parametrów można ustawić ręcznie w oknie właściwości usługi w konsoli Usług. Argumenty wprowadzone w konsoli nie są zapisywane; są one przekazywane do usługi jednorazowo, gdy usługa jest uruchamiana z panelu sterowania. 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\<nazwa> usługi). Argumenty z rejestru można uzyskać przy użyciu GetCommandLineArgs metody , na przykład: string[] imagePathArgs = Environment.GetCommandLineArgs();.