ServiceBase クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
サービス アプリケーションの一部として存在するサービスの基本クラスを提供します。 ServiceBase は、新しいサービス クラスの作成時に派生される必要があります。
public ref class ServiceBase : System::ComponentModel::Component
public class ServiceBase : System.ComponentModel.Component
type ServiceBase = class
inherit Component
Public Class ServiceBase
Inherits Component
- 継承
- 派生
注釈
サービス アプリケーションでサービス クラスを定義するときに から ServiceBase 派生します。 便利なサービスは、 メソッドと OnStop メソッドをOnStartオーバーライドします。 追加の機能については、サービス状態の変化に応じて、 と OnContinue を特定の動作でオーバーライドOnPauseできます。
サービスは、ユーザー インターフェイスをサポートせず、ログオンしたユーザー アカウントでは実行されない可能性がある、実行時間の長い実行可能ファイルです。 このサービスは、ユーザーがコンピューターにログオンしなくても実行できます。
既定では、サービスはシステム アカウントで実行されます。これは管理者アカウントと同じではありません。 システム アカウントの権限を変更することはできません。 または、 を ServiceProcessInstaller 使用して、サービスを実行するユーザー アカウントを指定することもできます。
実行可能ファイルには複数のサービスを含めることができますが、サービスごとに個別 ServiceInstaller の サービスを含める必要があります。 インスタンスは ServiceInstaller 、サービスをシステムに登録します。 インストーラーは、各サービスを、サービス コマンドの記録に使用できるイベント ログに関連付けます。 実行可能ファイルの 関数は main()
、実行するサービスを定義します。 サービスの現在の作業ディレクトリはシステム ディレクトリであり、実行可能ファイルが配置されているディレクトリではありません。
サービスを開始すると、システムは実行可能ファイルを検索し、実行可能ファイルに含まれるそのサービスの メソッドを実行 OnStart します。 ただし、サービスの実行は実行可能ファイルの実行と同じではありません。 実行可能ファイルはサービスのみを読み込みます。 サービスは、サービス コントロール マネージャーを介してアクセスされます (たとえば、開始済み、停止済み)。
実行可能ファイルは、サービスで Start を ServiceBase 初めて呼び出すと、派生クラスのコンストラクターを呼び出します。 OnStartコマンド処理メソッドは、コンストラクターの実行直後に呼び出されます。 サービスが初めて読み込まれた後、コンストラクターは再度実行されないため、コンストラクターによって実行される処理と によって OnStart実行される処理を分離する必要があります。 によって OnStop 解放できるリソースは、 で OnStart作成する必要があります。 コンストラクターでリソースを作成すると、リソースを解放した後 OnStop にサービスが再度開始された場合、リソースが適切に作成されなくなります。
サービス コントロール マネージャー (SCM) は、サービスと対話する方法を提供します。 SCM を使用して、Start、Stop、Pause、Continue、またはカスタム コマンドをサービスに渡すことができます。 SCM では、 と CanPauseAndContinue のCanStop値を使用して、サービスが Stop、Pause、または Continue コマンドを受け入れるかどうかを判断します。 SCM のコンテキスト メニューで Stop、Pause、Continue が有効になるのは、対応する プロパティ CanStop または CanPauseAndContinue が true
サービス クラス内にある場合のみです。 有効にした場合、コマンドはサービスに渡され、、OnPause、OnStop、または OnContinue が呼び出されます。 、、または CanPauseAndContinue が の場合CanStop、 false
メソッドを実装した場合でも、対応するコマンド処理メソッド (などOnStop) は処理されません。 CanShutdown
クラスを使用すると、ユーザー インターフェイスを ServiceController 使用して SCM が実行する処理をプログラムで実行できます。 コンソールで使用できるタスクを自動化できます。 、CanShutdown、または CanPauseAndContinue が のtrue
場合、対応するコマンド処理メソッド (などOnStop) を実装していない場合CanStop、システムは例外をスローし、コマンドを無視します。
に 、OnStop、またはその他のServiceBaseメソッドを実装OnStartする必要はありません。 ただし、サービスの動作は で OnStart説明されているため、少なくともこのメンバーをオーバーライドする必要があります。 実行可能ファイルの 関数は main()
、 メソッドを呼び出して、サービスを実行可能ファイルに Service Control Manager に Run 登録します。 メソッドにServiceBase渡されるオブジェクトの プロパティはServiceName、RunそのサービスのServiceNameサービス インストーラーの プロパティと一致する必要があります。
を使用 InstallUtil.exe
して、システムにサービスをインストールできます。
Note
Application イベント ログ以外のログを指定してサービス呼び出しの通知を受け取ることができますが、 プロパティも プロパティもAutoLogEventLogカスタム ログに書き込むには使用できません。 自動ログ記録をfalse
使用しない場合は、 を に設定AutoLogします。
コンストラクター
ServiceBase() |
ServiceBase クラスの新しいインスタンスを作成します。 |
フィールド
MaxNameLength |
サービス名の最大サイズを示します。 |
プロパティ
AutoLog |
イベント ログで、Start、Stop、Pause、Continue の各コマンドをレポートするかどうかを示します。 |
CanHandlePowerEvent |
サービスで、コンピューターの電源ステータスの変更の通知を処理できるかどうかを示す値を取得または設定します。 |
CanHandleSessionChangeEvent |
ターミナル サーバー セッションから受信したセッション変更イベントをサービスで処理できるかどうかを示す値を取得または設定します。 |
CanPauseAndContinue |
サービスを一時中断および再開できるかどうかを示す値を取得または設定します。 |
CanRaiseEvents |
コンポーネントがイベントを発生させることがきるかどうかを示す値を取得します。 (継承元 Component) |
CanShutdown |
システムのシャットダウン時に、サービスにそれを通知する必要があるかどうかを示す値を取得または設定します。 |
CanStop |
サービスを開始した後に停止できるかどうかを示す値を取得または設定します。 |
Container |
IContainer を含む Component を取得します。 (継承元 Component) |
DesignMode |
Component が現在デザイン モードかどうかを示す値を取得します。 (継承元 Component) |
EventLog |
Start や Stop などのサービス コマンドの呼び出し通知をアプリケーション イベント ログに書き込むために使用できるイベント ログを取得します。 |
Events |
Component に結び付けられているイベント ハンドラーのリストを取得します。 (継承元 Component) |
ExitCode |
サービスの終了コードを取得または設定します。 |
ServiceHandle |
サービスのサービス コントロール ハンドルを取得します。 |
ServiceName |
システムでサービスを識別するために使用される短い名前を取得または設定します。 |
Site |
Component の ISite を取得または設定します。 (継承元 Component) |
メソッド
CreateObjRef(Type) |
リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 (継承元 MarshalByRefObject) |
Dispose() |
Component によって使用されているすべてのリソースを解放します。 (継承元 Component) |
Dispose(Boolean) |
ServiceBase で使用されていたリソース (メモリを除く) を解放します。 |
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetLifetimeService() |
古い.
対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 (継承元 MarshalByRefObject) |
GetService(Type) |
Component またはその Container で提供されるサービスを表すオブジェクトを返します。 (継承元 Component) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
InitializeLifetimeService() |
古い.
このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。 (継承元 MarshalByRefObject) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
MemberwiseClone(Boolean) |
現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。 (継承元 MarshalByRefObject) |
OnContinue() |
派生クラスに実装されると、OnContinue() は、サービス コントロール マネージャー (SCM) によって Continue コマンドがサービスに送信されるときに実行されます。 サービスが一時中断してから通常の操作の再開時に実行されるアクションを指定します。 |
OnCustomCommand(Int32) |
派生クラスに実装されると、OnCustomCommand(Int32) は、サービス コントロール マネージャー (SCM) でカスタム コマンドがサービスに渡されるときに、実行されます。 パラメーター値が設定されているコマンドの発生時に実行されるアクションを指定します。 |
OnPause() |
派生クラスに実装されると、Pause コマンドがサービス コントロール マネージャー (SCM) によってサービスに送信されるときに実行されます。 サービスが一時中断したときに実行されるアクションを指定します。 |
OnPowerEvent(PowerBroadcastStatus) |
派生クラスに実装されると、コンピューターの電源ステータスの変更時に実行されます。 これは中断モードのラップトップ コンピューターに適用されるもので、システムのシャットダウンとは異なります。 |
OnSessionChange(SessionChangeDescription) |
変更イベントがターミナル サーバー セッションから受信された場合に実行します。 |
OnShutdown() |
派生クラスに実装されると、システムがシャット ダウンされるときに実行されます。 システムがシャット ダウンする直前に発生する処理を指定します。 |
OnStart(String[]) |
派生クラスに実装されると、Start コマンドがサービス コントロール マネージャー (SCM) によってサービスに送信されるとき、またはオペレーティング システムが (自動的に起動するサービスのために) 起動するときに実行されます。 サービスが開始するときに実行されるアクションを指定します。 |
OnStop() |
派生クラスに実装されると、Stop コマンドがサービス コントロール マネージャー (SCM) によってサービスに送信されるときに実行されます。 サービスが実行を停止したときに実行されるアクションを指定します。 |
RequestAdditionalTime(Int32) |
保留中の操作について時間の延長を要求します。 |
RequestAdditionalTime(TimeSpan) |
OnStart、OnStop、OnPause、または OnContinue からこのメソッドを呼び出すと、サービスが応答していないとマークされないように、指定された待機ヒントがサービス コントロール マネージャーに渡されます。 |
Run(ServiceBase) |
サービス コントロール マネージャー (SCM) を使用してサービスの実行可能ファイルを登録します。 |
Run(ServiceBase[]) |
複数サービスの実行可能ファイルをサービス コントロール マネージャー (SCM) に登録します。 |
ServiceMainCallback(Int32, IntPtr) |
コマンド ハンドラーを登録し、サービスを開始します。 |
Stop() |
サービスの実行を停止します。 |
ToString() |
Component の名前 (存在する場合) を格納する String を返します。 このメソッドはオーバーライドできません。 (継承元 Component) |
イベント
Disposed |
Dispose() メソッドの呼び出しによってコンポーネントが破棄されるときに発生します。 (継承元 Component) |
適用対象
こちらもご覧ください
.NET