方法: プログラムでサービスを作成する
Note
この記事は、.NET のホステッド サービスには適用されません。 Microsoft.Extensions.Hosting.BackgroundService を使用した Windows サービスの最新のコンテンツと Worker サービス テンプレートについては、次を参照してください:
Windows サービス プロジェクトのテンプレートを使用しない場合は、継承などの基本要素を設定して独自のサービスを作成できます。 プログラミングによってサービスを作成する場合は、テンプレートでは自動化される手順を手動で行う必要があります。
サービス クラスが ServiceBase クラスから継承されるように設定します。
サービス プロジェクトの
Main
メソッドを作成します。このメソッドは、実行するサービスを定義し、それに対して Run メソッドを呼び出します。
プログラミングによってサービスを作成するには
空のプロジェクトを作成し、必要な名前空間への参照を作成するには、次の手順を実行します。
ソリューション エクスプローラーで、 [参照] ノードを右クリックし、 [参照の追加] をクリックします。
[.NET Framework] タブで System.dll までスクロールして選択し、 [選択] をクリックします。
System.ServiceProcess.dll までスクロールして選択し、 [選択] をクリックします。
[OK] をクリックします。
クラスを追加し、ServiceBase から継承されるように設定します。
public class UserService1 : ServiceBase { }
Public Class UserService1 Inherits System.ServiceProcess.ServiceBase End Class
次のコードを追加してサービス クラスを設定します。
public UserService1() { ServiceName = "MyService2"; CanStop = true; CanPauseAndContinue = true; AutoLog = true; }
Public Sub New() Me.ServiceName = "MyService2" Me.CanStop = True Me.CanPauseAndContinue = True Me.AutoLog = True End Sub
クラスの
Main
メソッドを作成し、それを使用してクラスに含まれるサービスを定義します。userService1
がクラスの名前です。public static void Main() { ServiceBase.Run(new UserService1()); }
Shared Sub Main() System.ServiceProcess.ServiceBase.Run(New UserService1) End Sub
OnStart メソッドをオーバーライドし、サービスの開始時に実行する処理を定義します。
protected override void OnStart(string[] args) { // Insert code here to define processing. }
Protected Overrides Sub OnStart(ByVal args() As String) ' Insert code here to define processing. End Sub
他に独自の処理を定義するメソッドがあればそれをオーバーライドし、サービスが行うアクションを記述します。
サービス アプリケーションの必要なインストーラーを追加します。 詳細については、サービス アプリケーションにインストーラーを追加する」を参照してください。
[ビルド] メニューの [ソリューションのビルド] をクリックして、プロジェクトを作成します。
注意
F5 キーを押してプロジェクトを実行しないでください。この方法ではサービス プロジェクトを実行できません。
セットアップ プロジェクトと、サービスをインストールするカスタム処理を作成します。 例については、「チュートリアル: コンポーネント デザイナーによる Windows サービス アプリケーションの作成」を参照してください。
サービスをインストールします。 詳細については、サービスをインストールおよびアンインストールする」を参照してください。
関連項目
.NET