ServiceBase.OnStart(String[]) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
派生クラスに実装されると、Start コマンドがサービス コントロール マネージャー (SCM) によってサービスに送信されるとき、またはオペレーティング システムが (自動的に起動するサービスのために) 起動するときに実行されます。 サービスが開始するときに実行されるアクションを指定します。
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())
パラメーター
- args
- String[]
Start コマンドによって渡されたデータ。
注釈
サービスが Start コマンドを受け取ったときに発生する処理を指定するために使用 OnStart します。 OnStart は、サービスの動作を指定するメソッドです。 OnStart はデータを渡す方法として引数を受け取ることができますが、この使用はまれです。
注意事項
コンストラクターを使用して、必要な処理を OnStart実行しないでください。 サービスのすべての初期化を処理するために使用 OnStart します。 コンストラクターは、サービスの実行時ではなく、アプリケーションの実行可能ファイルの実行時に呼び出されます。 実行可能ファイルは実行前に OnStart実行されます。 たとえば、続行すると、SCM は既にオブジェクトをメモリに保持しているため、コンストラクターは再び呼び出されません。 コンストラクターではなくコンストラクターOnStartに割り当てられたリソースを解放した場合OnStop、サービスが 2 回目に呼び出されるときに必要なリソースは再び作成されません。
サービスのインストーラーを に設定することで、コンピューターの再起動時に自動的に開始するようにサービスをAutomatic設定StartTypeできます。 このような状況では、 OnStart システムの起動時に呼び出されます。
OnStart は、派生クラスでオーバーライドされることが想定されています。 サービスが役に立ち、 OnStart OnStop 両方をサービス クラスに実装する必要があります。
Main メソッドではなく、メソッド内のサービスの OnStart 初期化引数を処理します。 パラメーター配列の args
引数は、サービス コンソールのサービスのプロパティ ウィンドウで手動で設定できます。 コンソールに入力された引数は保存されません。コントロール パネルからサービスが開始されると、1 回限りサービスに渡されます。 サービスが自動的に開始されるときに存在する必要がある引数は、サービスのレジストリ キー (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<service name>) の ImagePath 文字列値に配置できます。 次のようにstring[] imagePathArgs = Environment.GetCommandLineArgs();
、メソッドを使用してレジストリから引数をGetCommandLineArgs取得できます。