ServiceBase クラス

定義

サービス アプリケーションの一部として存在するサービスの基本クラスを提供します。 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 では、 と CanPauseAndContinueCanStop値を使用して、サービスが Stop、Pause、または Continue コマンドを受け入れるかどうかを判断します。 SCM のコンテキスト メニューで Stop、Pause、Continue が有効になるのは、対応する プロパティ CanStop または CanPauseAndContinuetrue サービス クラス内にある場合のみです。 有効にした場合、コマンドはサービスに渡され、、OnPauseOnStop、または OnContinue が呼び出されます。 、、または CanPauseAndContinue が の場合CanStopfalseメソッドを実装した場合でも、対応するコマンド処理メソッド (などOnStop) は処理されません。 CanShutdown

クラスを使用すると、ユーザー インターフェイスを ServiceController 使用して SCM が実行する処理をプログラムで実行できます。 コンソールで使用できるタスクを自動化できます。 、CanShutdown、または CanPauseAndContinue が のtrue場合、対応するコマンド処理メソッド (などOnStop) を実装していない場合CanStop、システムは例外をスローし、コマンドを無視します。

に 、OnStop、またはその他のServiceBaseメソッドを実装OnStartする必要はありません。 ただし、サービスの動作は で OnStart説明されているため、少なくともこのメンバーをオーバーライドする必要があります。 実行可能ファイルの 関数は main() 、 メソッドを呼び出して、サービスを実行可能ファイルに Service Control Manager に Run 登録します。 メソッドにServiceBase渡されるオブジェクトの プロパティはServiceNameRunそのサービスの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

ComponentISite を取得または設定します。

(継承元 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)

適用対象

こちらもご覧ください