Udostępnij za pośrednictwem


ServiceBase.OnStart(String[]) Metoda

Definicja

Po zaimplementowaniu w klasie pochodnej program wykonuje polecenie Uruchamiania do usługi przez menedżera kontroli usług (SCM) lub po uruchomieniu systemu operacyjnego (dla usługi uruchamianej automatycznie). Określa akcje do wykonania 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

Służy OnStart do określania przetwarzania, które ma miejsce po odebraniu polecenia Uruchamiania przez usługę. OnStart to metoda, w której określasz zachowanie usługi. OnStart argumenty mogą przyjmować argumenty jako sposób przekazywania danych, ale to użycie jest rzadkie.

Przestroga

Nie należy używać konstruktora do przetwarzania, które powinno znajdować się w .OnStart Służy OnStart do obsługi wszystkich inicjowania usługi. Konstruktor jest wywoływany, gdy plik wykonywalny aplikacji jest uruchamiany, a nie po uruchomieniu usługi. 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 przy 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ługi. Argumenty wprowadzone w konsoli nie są zapisywane; są one przekazywane do usługi jednorazowo po uruchomieniu usługi 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();.

Dotyczy

Zobacz też