方法: Windows サービスを作成する

警告

このドキュメントは、最新版の Windows サービスは対象としていません。 BackgroundService を使用した Windows サービスの最新のコンテンツと Worker サービス テンプレートについては、次を参照してください。

サービスを作成するときには、Windows サービスと呼ばれる、Visual Studio プロジェクトのテンプレートを使用できます。 このテンプレートを使用すると、作業の多くを自動化できます。この自動化は、適切なクラスと名前空間を参照し、サービスの基底クラスからの継承を設定し、メソッドのいくつかをオーバーライドすることで実現されます。

警告

Windows サービスのプロジェクト テンプレートは、Visual Studio の Express Edition では使用できません。

実用的なサービスを作成するには、少なくとも以下の作業を行う必要があります。

  • ServiceName プロパティを設定します。

  • サービス アプリケーションに必要なインストーラーを作成します。

  • OnStart メソッドと OnStop メソッドのオーバーライドとコーディングを行い、サービスの動作をカスタマイズします。

Windows サービス アプリケーションを作成するには

  1. Windows サービス プロジェクトを作成します。

    注意

    テンプレートを使用せずにサービスを記述する方法については、「方法: プログラムでサービスを作成する」を参照してください。

  2. [プロパティ] ウィンドウで、サービスの ServiceName プロパティを設定します。

    Set the ServiceName property.

    Note

    ServiceName プロパティの値は、各インストーラー クラスに記録されている名前と一致する必要があります。 このプロパティを変更した場合は、インストーラー クラスの ServiceName プロパティも変更する必要があります。

  3. 次のいずれかのプロパティを設定して、サービスの動作を決定します。

    プロパティ 設定
    CanStop サービスが実行停止要求を受け付ける場合は True を設定します。サービスの実行を停止しない場合は false を設定します。
    CanShutdown サービスがコンピューターのシャットダウン時に通知を受けて True プロシージャを呼び出す場合は、OnShutdown を設定します。
    CanPauseAndContinue サービスが一時停止要求または再開要求を受け付ける場合は True を設定します。サービスを一時停止または再開しない場合は false を設定します。
    CanHandlePowerEvent コンピューターの電源状態の変化をサービスに通知する場合は True を設定します。サービスに電源状態の変化を通知しない場合は、false を設定します。
    AutoLog サービスがアクションを実行したときにアプリケーション イベント ログに情報を入力する場合は True を設定します。この機能を無効にする場合は false を設定します。 詳細については、サービスに関する情報のログを記録する」を参照してください。 注: 既定では、AutoLogtrue に設定されています。

    注意

    CanStop または CanPauseAndContinuefalse に設定すると、サービス コントロール マネージャーは、対応するメニュー オプション (サービスの停止、一時停止、または継続) を無効にします。

  4. コード エディターを起動し、OnStart プロシージャと OnStop プロシージャの処理を記述します。

  5. ほかに動作を定義するメソッドがある場合は、それをオーバーライドします。

  6. サービス アプリケーションの必要なインストーラーを追加します。 詳細については、サービス アプリケーションにインストーラーを追加する」を参照してください。

  7. [ビルド] メニューの [ソリューションのビルド] をクリックして、プロジェクトを作成します。

    注意

    F5 キーを押してプロジェクトを実行しないでください。この方法ではサービス プロジェクトを実行できません。

  8. サービスをインストールします。 詳細については、サービスをインストールおよびアンインストールする」を参照してください。

関連項目