方法 : サービスに対して管理タスクを実行する
更新 : 2007 年 11 月
サービスに対して、起動、停止、一時中断、再起動などのさまざまな標準的な管理タスクを実行できます。これらのタスクを実行するには、サーバー エクスプローラまたはデータベース エクスプローラで [サービス マネージャの起動] コマンドを使用するか、既存サービスに接続されている ServiceController コンポーネントのインスタンスに対してメソッドを実行します。
通常、サービスの作成者は、特定のタスクに関連付けられたアクションをカスタマイズするコードを記述します。たとえば、サービスとして OnPause コマンドに応答するコードを記述できます。この場合、Pause タスクに対するカスタム処理は、サービスが一時中断する前に行われます。サービスの機能を定義する方法については、「方法 : Windows サービスを作成する」を参照してください。
サービスで使用できるタスクは、サービスのプロパティによって異なります。たとえば、サービスの CanStop プロパティに false を設定できます。これにより、その特定のサービスで Stop コマンドが使用できなくなります。サービスをコードで停止しようとすると、"Failed to stop ServiceName" というシステム エラーが発生します。
メモ : |
---|
お使いのマシンで、Visual Studio ユーザー インターフェイスの一部の要素の名前や場所が、次の手順とは異なる場合があります。これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。詳細については、「Visual Studio の設定」を参照してください。 |
サーバー エクスプローラまたはデータベース エクスプローラで管理タスクを実行するには
サーバー エクスプローラまたはデータベース エクスプローラで、タスクを実行するサーバーがまだ一覧にない場合は、そのサーバーを一覧に追加します。詳細については、「方法 : サーバー エクスプローラ/データベース エクスプローラにアクセスして初期化する」を参照してください。
サービス コンソールを開いて、個々のサービス オプションにアクセスするには、[サービス] ノードを右クリックして [サービス マネージャの起動] をクリックします。
プログラムを使用して管理タスクを実行するには
ServiceController クラスのインスタンスを作成し、管理対象のサービスとやり取りするように設定します。詳細については、「方法 : ServiceController コンポーネントのインスタンスを作成する」を参照してください。
適切なメソッドを呼び出し、サービスを起動、停止、一時中断、または継続させます。
ヒント : これらのコマンドに応じたプロパティの問い合わせを行って、サービスが要求に応答するかどうかを調べることもできます。たとえば、サービスの CanStop プロパティの問い合わせを行う条件ステートメントを作成して、Stop メソッドを呼び出す前に、このプロパティの値が true かどうかを調べることができます。
コマンド実行前に、サービスがそのコマンドを受け付けるかどうかを評価する方法を次の例で示します。
If myController.CanStop Then myController.Stop() End If
if (myController.CanStop) { myController.Stop(); }
参照
処理手順
方法 : ServiceController コンポーネントのインスタンスを作成する