ServiceBase ServiceBase ServiceBase ServiceBase Class

定義

サービス アプリケーションの一部として存在するサービスの基本クラスを提供します。Provides a base class for a service that will exist as part of a service application. ServiceBase は、新しいサービス クラスの作成時に派生される必要があります。ServiceBase must be derived from when creating a new service class.

public ref class ServiceBase : System::ComponentModel::Component
public class ServiceBase : System.ComponentModel.Component
type ServiceBase = class
    inherit Component
Public Class ServiceBase
Inherits Component
継承

注釈

派生ServiceBaseサービス アプリケーションで、サービス クラスを定義する場合。Derive from ServiceBase when defining your service class in a service application. 有効なサービスのすべての上書き、OnStartOnStopメソッド。Any useful service overrides the OnStart and OnStop methods. 他の機能をオーバーライドできますOnPauseOnContinueの特定の動作をサービスの状態の変更に応答します。For additional functionality, you can override OnPause and OnContinue with specific behavior in response to changes in the service state.

サービスは、ユーザー インターフェイスをサポートしていない実行時間の長い実行可能ファイルとユーザーのログオン アカウントで実行します。A service is a long-running executable that does not support a user interface, and which might not run under the logged-on user account. サービスは、すべてのユーザー、コンピューターにログオンすることがなく実行できます。The service can run without any user being logged on to the computer.

既定では、サービスは、管理者アカウントと同じではないシステム アカウントで実行します。By default, services run under the System account, which is not the same as the Administrator account. システム アカウントの権限を変更することはできません。You cannot change the rights of the System account. また、使用することができます、ServiceProcessInstallerサービスを実行するユーザー アカウントを指定します。Alternatively, you can use a ServiceProcessInstaller to specify a user account under which the service will run.

実行可能ファイルは、1 つ以上のサービスを含めることができますが、個別に含める必要がありますServiceInstallerサービスごとにします。An executable can contain more than one service but must contain a separate ServiceInstaller for each service. ServiceInstallerインスタンス システム サービスに登録します。The ServiceInstaller instance registers the service with the system. インストーラーは、各サービスをサービスのコマンドを記録するために使用できるイベント ログを関連付けます。The installer also associates each service with an event log that you can use to record service commands. main()実行可能ファイルで関数を定義するサービスを実行する必要があります。The main() function in the executable defines which services should run. サービスの現在の作業ディレクトリは、実行可能ファイルが配置されているディレクトリではなく、システム ディレクトリです。The current working directory of the service is the system directory, not the directory in which the executable is located.

サービスを開始すると、システムは、実行可能ファイルを検索され、実行、OnStart実行可能ファイル内に含まれる、そのサービスのメソッド。When you start a service, the system locates the executable and runs the OnStart method for that service, contained within the executable. ただし、サービスを実行してない実行可能ファイルを実行すると同じです。However, running the service is not the same as running the executable. 実行可能ファイルは、サービスのみを読み込みます。The executable only loads the service. サービス コントロール マネージャーから、(たとえば、開始および停止)、サービスがアクセスします。The service is accessed (for example, started and stopped) through the Service Control Manager.

実行可能ファイルの呼び出し、ServiceBase派生したクラスのコンス トラクターの最初の時間がサービスの開始を呼び出すことです。The executable calls the ServiceBase derived class's constructor the first time you call Start on the service. OnStartコンス トラクターの実行直後に、コマンド処理メソッドが呼び出されます。The OnStart command-handling method is called immediately after the constructor executes. によって実行されるコンス トラクターによって実行される処理を分離する必要があるため、コンス トラクターは最初に、サービスが読み込まれた後にもう一度実行されませんOnStartします。The constructor is not executed again after the first time the service has been loaded, so it is necessary to separate the processing performed by the constructor from that performed by OnStart. すべてのリソースを解放することができますをOnStopで作成する必要がありますOnStartします。Any resources that can be released by OnStop should be created in OnStart. コンス トラクターでリソースを作成することを防止、サービスが後にもう一度開始する場合に正しく作成されているOnStopリソースがリリースされました。Creating resources in the constructor prevents them from being created properly if the service is started again after OnStop has released the resources.

サービス コントロール マネージャー (SCM) は、サービスと対話する方法を提供します。The Service Control Manager (SCM) provides a way to interact with the service. SCM を使用すると、開始、停止、一時停止、続行、およびカスタム コマンドをサービスに渡します。You can use the SCM to pass Start, Stop, Pause, Continue, or custom commands into the service. SCM の値を使用してCanStopCanPauseAndContinueサービスが停止を受け入れるかどうかを確認するのには、一時停止、またはコマンドを続行します。The SCM uses the values of CanStop and CanPauseAndContinue to determine whether the service accepts Stop, Pause, or Continue commands. 停止、一時停止、および続行は SCM のコンテキスト メニューのみの場合に有効になっている、対応するプロパティCanStopまたはCanPauseAndContinuetrueサービス クラスにします。Stop, Pause, and Continue are enabled in the SCM's context menus only if the corresponding property CanStop or CanPauseAndContinue is true in the service class. コマンドがサービスに渡された有効な場合、およびOnStopOnPause、またはOnContinueが呼び出されます。If enabled, the command is passed to the service, and OnStop, OnPause, or OnContinue is called. 場合CanStopCanShutdown、またはCanPauseAndContinuefalse、対応するコマンド処理メソッド (などOnStop) は処理されず、メソッドを実装している場合でもです。If CanStop, CanShutdown, or CanPauseAndContinue is false, the corresponding command-handling method (such as OnStop) will not be processed, even if you have implemented the method.

使用することができます、ServiceControllerどのような SCM をプログラムで実行するためには、ユーザー インターフェイスを使用します。You can use the ServiceController class to do programmatically what the SCM does using a user interface. コンソールで使用できるタスクを自動化できます。You can automate the tasks available in the console. 場合CanStopCanShutdown、またはCanPauseAndContinuetrueが対応するコマンド処理メソッドを実装していない (などOnStop)、システムが例外をスローし、コマンドは無視されます。If CanStop, CanShutdown, or CanPauseAndContinue is true but you have not implemented a corresponding command-handling method (such as OnStop) the system throws an exception and ignores the command.

実装する必要はありませんOnStartOnStop、またはその他の方法でServiceBaseします。You do not have to implement OnStart, OnStop, or any other method in ServiceBase. ただし、サービスの動作は、「OnStartので少なくとも、このメンバーをオーバーライドする必要があります。However, the service's behavior is described in OnStart, so at minimum, this member should be overridden. main()実行可能ファイルの関数は、実行可能ファイル、サービス コントロール マネージャーでサービスを呼び出すことによって登録、Runメソッド。The main() function of the executable registers the service in the executable with the Service Control Manager by calling the Run method. ServiceNameのプロパティ、ServiceBaseオブジェクトに渡される、Runメソッドに一致する必要があります、ServiceNameそのサービスのサービスのインストーラーのプロパティ。The ServiceName property of the ServiceBase object passed to the Run method must match the ServiceName property of the service installer for that service.

使用することができますInstallUtil.exeサービス、システムをインストールします。You can use InstallUtil.exe to install services on your system.

注意

サービスの呼び出しが、どちらの通知を受け取るアプリケーション イベント ログ以外のログを指定することができます、AutoLogEventLogプロパティは、カスタムのログに書き込むことができます。You can specify a log other than the Application event log to receive notification of service calls, but neither the AutoLog nor the EventLog property can write to a custom log. 設定AutoLogfalse自動ログ記録を使用したくない場合。Set AutoLog to false if you do not want to use automatic logging.

コンストラクター

ServiceBase() ServiceBase() ServiceBase() ServiceBase()

ServiceBase クラスの新しいインスタンスを作成します。Creates a new instance of the ServiceBase class.

フィールド

MaxNameLength MaxNameLength MaxNameLength MaxNameLength

サービス名の最大サイズを示します。Indicates the maximum size for a service name.

プロパティ

AutoLog AutoLog AutoLog AutoLog

イベント ログで、Start、Stop、Pause、Continue の各コマンドをレポートするかどうかを示します。Indicates whether to report Start, Stop, Pause, and Continue commands in the event log.

CanHandlePowerEvent CanHandlePowerEvent CanHandlePowerEvent CanHandlePowerEvent

サービスで、コンピューターの電源ステータスの変更の通知を処理できるかどうかを示す値を取得または設定します。Gets or sets a value indicating whether the service can handle notifications of computer power status changes.

CanHandleSessionChangeEvent CanHandleSessionChangeEvent CanHandleSessionChangeEvent CanHandleSessionChangeEvent

ターミナル サーバー セッションから受信したセッション変更イベントをサービスで処理できるかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether the service can handle session change events received from a Terminal Server session.

CanPauseAndContinue CanPauseAndContinue CanPauseAndContinue CanPauseAndContinue

サービスを一時中断および再開できるかどうかを示す値を取得または設定します。Gets or sets a value indicating whether the service can be paused and resumed.

CanRaiseEvents CanRaiseEvents CanRaiseEvents CanRaiseEvents

コンポーネントがイベントを発生させることがきるかどうかを示す値を取得します。Gets a value indicating whether the component can raise an event.

(Inherited from Component)
CanShutdown CanShutdown CanShutdown CanShutdown

システムのシャットダウン時に、サービスにそれを通知する必要があるかどうかを示す値を取得または設定します。Gets or sets a value indicating whether the service should be notified when the system is shutting down.

CanStop CanStop CanStop CanStop

サービスを開始した後に停止できるかどうかを示す値を取得または設定します。Gets or sets a value indicating whether the service can be stopped once it has started.

Container Container Container Container

IContainer を格納している Component を取得します。Gets the IContainer that contains the Component.

(Inherited from Component)
DesignMode DesignMode DesignMode DesignMode

Component が現在デザイン モードかどうかを示す値を取得します。Gets a value that indicates whether the Component is currently in design mode.

(Inherited from Component)
EventLog EventLog EventLog EventLog

Start や Stop などのサービス コマンドの呼び出し通知をアプリケーション イベント ログに書き込むために使用できるイベント ログを取得します。Gets an event log you can use to write notification of service command calls, such as Start and Stop, to the Application event log.

Events Events Events Events

Component に結び付けられているイベント ハンドラーのリストを取得します。Gets the list of event handlers that are attached to this Component.

(Inherited from Component)
ExitCode ExitCode ExitCode ExitCode

サービスの終了コードを取得または設定します。Gets or sets the exit code for the service.

ServiceHandle ServiceHandle ServiceHandle ServiceHandle

サービスのサービス コントロール ハンドルを取得します。Gets the service control handle for the service.

ServiceName ServiceName ServiceName ServiceName

システムでサービスを識別するために使用される短い名前を取得または設定します。Gets or sets the short name used to identify the service to the system.

Site Site Site Site

ComponentISite を取得または設定します。Gets or sets the ISite of the Component.

(Inherited from Component)

メソッド

CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Inherited from MarshalByRefObject)
Dispose() Dispose() Dispose() Dispose()

Component によって使用されているすべてのリソースを解放します。Releases all resources used by the Component.

(Inherited from Component)
Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

ServiceBase で使用されていたリソース (メモリを除く) を解放します。Disposes of the resources (other than memory) used by the ServiceBase.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetLifetimeService() GetLifetimeService() GetLifetimeService() GetLifetimeService()

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
GetService(Type) GetService(Type) GetService(Type) GetService(Type)

Component またはその Container で提供されるサービスを表すオブジェクトを返します。Returns an object that represents a service provided by the Component or by its Container.

(Inherited from Component)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService()

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。Obtains a lifetime service object to control the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。Creates a shallow copy of the current MarshalByRefObject object.

(Inherited from MarshalByRefObject)
OnContinue() OnContinue() OnContinue() OnContinue()

派生クラスに実装されると、OnContinue() は、サービス コントロール マネージャー (SCM) によって Continue コマンドがサービスに送信されるときに実行されます。When implemented in a derived class, OnContinue() runs when a Continue command is sent to the service by the Service Control Manager (SCM). サービスが一時中断してから通常の操作の再開時に実行されるアクションを指定します。Specifies actions to take when a service resumes normal functioning after being paused.

OnCustomCommand(Int32) OnCustomCommand(Int32) OnCustomCommand(Int32) OnCustomCommand(Int32)

派生クラスに実装されると、OnCustomCommand(Int32) は、サービス コントロール マネージャー (SCM) でカスタム コマンドがサービスに渡されるときに、実行されます。When implemented in a derived class, OnCustomCommand(Int32) executes when the Service Control Manager (SCM) passes a custom command to the service. パラメーター値が設定されているコマンドの発生時に実行されるアクションを指定します。Specifies actions to take when a command with the specified parameter value occurs.

OnPause() OnPause() OnPause() OnPause()

派生クラスに実装されると、Pause コマンドがサービス コントロール マネージャー (SCM) によってサービスに送信されるときに実行されます。When implemented in a derived class, executes when a Pause command is sent to the service by the Service Control Manager (SCM). サービスが一時中断したときに実行されるアクションを指定します。Specifies actions to take when a service pauses.

OnPowerEvent(PowerBroadcastStatus) OnPowerEvent(PowerBroadcastStatus) OnPowerEvent(PowerBroadcastStatus) OnPowerEvent(PowerBroadcastStatus)

派生クラスに実装されると、コンピューターの電源ステータスの変更時に実行されます。When implemented in a derived class, executes when the computer's power status has changed. これは中断モードのラップトップ コンピューターに適用されるもので、システムのシャットダウンとは異なります。This applies to laptop computers when they go into suspended mode, which is not the same as a system shutdown.

OnSessionChange(SessionChangeDescription) OnSessionChange(SessionChangeDescription) OnSessionChange(SessionChangeDescription) OnSessionChange(SessionChangeDescription)

変更イベントがターミナル サーバー セッションから受信された場合に実行します。Executes when a change event is received from a Terminal Server session.

OnShutdown() OnShutdown() OnShutdown() OnShutdown()

派生クラスに実装されると、システムがシャット ダウンされるときに実行されます。When implemented in a derived class, executes when the system is shutting down. システムがシャット ダウンする直前に発生する処理を指定します。Specifies what should occur immediately prior to the system shutting down.

OnStart(String[]) OnStart(String[]) OnStart(String[]) OnStart(String[])

派生クラスに実装されると、Start コマンドがサービス コントロール マネージャー (SCM) によってサービスに送信されるとき、またはオペレーティング システムが (自動的に起動するサービスのために) 起動するときに実行されます。When implemented in a derived class, executes when a Start command is sent to the service by the Service Control Manager (SCM) or when the operating system starts (for a service that starts automatically). サービスが開始するときに実行されるアクションを指定します。Specifies actions to take when the service starts.

OnStop() OnStop() OnStop() OnStop()

派生クラスに実装されると、Stop コマンドがサービス コントロール マネージャー (SCM) によってサービスに送信されるときに実行されます。When implemented in a derived class, executes when a Stop command is sent to the service by the Service Control Manager (SCM). サービスが実行を停止したときに実行されるアクションを指定します。Specifies actions to take when a service stops running.

RequestAdditionalTime(Int32) RequestAdditionalTime(Int32) RequestAdditionalTime(Int32) RequestAdditionalTime(Int32)

保留中の操作について時間の延長を要求します。Requests additional time for a pending operation.

Run(ServiceBase) Run(ServiceBase) Run(ServiceBase) Run(ServiceBase)

サービス コントロール マネージャー (SCM) を使用してサービスの実行可能ファイルを登録します。Registers the executable for a service with the Service Control Manager (SCM).

Run(ServiceBase[]) Run(ServiceBase[]) Run(ServiceBase[]) Run(ServiceBase[])

複数サービスの実行可能ファイルをサービス コントロール マネージャー (SCM) に登録します。Registers the executable for multiple services with the Service Control Manager (SCM).

ServiceMainCallback(Int32, IntPtr) ServiceMainCallback(Int32, IntPtr) ServiceMainCallback(Int32, IntPtr) ServiceMainCallback(Int32, IntPtr)

コマンド ハンドラーを登録し、サービスを開始します。Registers the command handler and starts the service.

Stop() Stop() Stop() Stop()

サービスの実行を停止します。Stops the executing service.

ToString() ToString() ToString() ToString()

Component の名前 (存在する場合) を格納する String を返します。Returns a String containing the name of the Component, if any. このメソッドはオーバーライドできません。This method should not be overridden.

(Inherited from Component)

イベント

Disposed Disposed Disposed Disposed

Dispose() メソッドの呼び出しによってコンポーネントが破棄されると発生します。Occurs when the component is disposed by a call to the Dispose() method.

(Inherited from Component)

適用対象

こちらもご覧ください