サービスを作成するときには、Windows サービスと呼ばれる、Visual Studio プロジェクトのテンプレートを使用できます。このテンプレートを使用すると、作業の多くを自動化できます。この自動化は、適切なクラスと名前空間を参照し、サービスの基本クラスからの継承を設定し、メソッドのいくつかをオーバーライドすることで実現されます。
メモ : |
|---|
| Windows サービスのテンプレートおよび関連する機能は、Visual Studio の Standard Edition では使用できません。詳細については、「Visual Studio のエディション」を参照してください。 |
実用的なサービスを作成するには、少なくとも以下の作業を行う必要があります。
アプリケーションにインストーラを追加した後、次の手順として、コンパイルされたプロジェクト ファイルをインストールし、サービスのインストールに必要なインストーラを実行するセットアップ プログラムを作成します。完全なセットアップ プロジェクトを作成するには、サービス プロジェクトの出力をセットアップ プロジェクトに追加し、サービスをインストールするカスタム処理を追加する必要があります。セットアップ プロジェクトの詳細については、「セットアップ プロジェクト」を参照してください。カスタム動作の詳細については、「チュートリアル : カスタム動作の作成」を参照してください。
Windows サービス アプリケーションを作成するには
-
Windows サービス プロジェクトを作成します。
-
[プロパティ] ウィンドウで、サービスの ServiceName プロパティを設定します。
メモ : |
|---|
| ServiceName プロパティの値は、各インストーラ クラスに記録されている名前と一致する必要があります。このプロパティを変更した場合は、インストーラ クラスの ServiceName プロパティも変更する必要があります。 |
-
次のいずれかのプロパティを設定して、サービスの動作を決定します。
|
プロパティ
|
設定
|
| CanStop |
サービスが実行停止要求を受け付ける場合は True を設定します。サービスの実行を停止しない場合は false を設定します。 |
| CanShutdown |
サービスがコンピュータのシャットダウン時に通知を受けて OnShutdown プロシージャを呼び出す場合は、True を設定します。 |
| CanPauseAndContinue |
サービスが一時停止要求または再開要求を受け付ける場合は True を設定します。サービスを一時停止または再開しない場合は false を設定します。 |
| CanHandlePowerEvent |
コンピュータの電源状態の変化をサービスに通知する場合は True を設定します。サービスに電源状態の変化を通知しない場合は、false を設定します。 |
| AutoLog |
サービスがアクションを実行したときにアプリケーション イベント ログに情報を入力する場合は True を設定します。この機能を無効にする場合は false を設定します。詳細については、「方法 : サービスに関する情報のログを記録する」を参照してください。 メモ : |
|---|
| 既定では、AutoLog は true に設定されています。 |
|
メモ : |
|---|
| CanStop または CanPauseAndContinue を false に設定すると、サービス コントロール マネージャは、対応するメニュー オプション (停止、一時停止、または継続) を無効にします。 |
-
コード エディタを起動し、OnStart プロシージャと OnStop プロシージャの処理を記述します。
-
ほかに動作を定義するメソッドがある場合は、それをオーバーライドします。
-
サービス アプリケーションの必要なインストーラを追加します。詳細については、「方法 : サービス アプリケーションにインストーラを追加する」を参照してください。
-
[ビルド] メニューの [ソリューションのビルド] をクリックして、プロジェクトを作成します。
メモ : |
|---|
| F5 キーを押してプロジェクトを実行しないでください。この方法ではサービス プロジェクトを実行できません。 |
-
サービスをインストールします。詳細については、「方法 : サービスをインストールおよびアンインストールする」を参照してください。
参照