ServiceBase.OnStart(String[]) メソッド

定義

派生クラスに実装されると、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取得できます。

適用対象

こちらもご覧ください