方法 : プログラムでサービスを作成するHow to: Write Services Programmatically

Windows サービス プロジェクトのテンプレートを使用しない場合は、継承などの基本要素を設定して独自のサービスを作成できます。If you choose not to use the Windows Service project template, you can write your own services by setting up the inheritance and other infrastructure elements yourself. プログラミングによってサービスを作成する場合は、テンプレートでは自動化される手順を手動で行う必要があります。When you create a service programmatically, you must perform several steps that the template would otherwise handle for you:

  • サービス クラスが ServiceBase クラスから継承されるように設定します。You must set up your service class to inherit from the ServiceBase class.

  • サービス プロジェクトの Main メソッドを作成します。このメソッドは、実行するサービスを定義し、それに対して Run メソッドを呼び出します。You must create a Main method for your service project that defines the services to run and calls the Run method on them.

  • OnStart プロシージャと OnStop プロシージャをオーバーライドし、任意の処理内容を記述します。You must override the OnStart and OnStop procedures and fill in any code you want them to run.

プログラミングによってサービスを作成するにはTo write a service programmatically

  1. 空のプロジェクトを作成し、必要な名前空間への参照を作成するには、次の手順を実行します。Create an empty project and create a reference to the necessary namespaces by following these steps:

    1. ソリューション エクスプローラーで、[参照] ノードを右クリックし、[参照の追加] をクリックします。In Solution Explorer, right-click the References node and click Add Reference.

    2. [.NET Framework] タブで System.dll までスクロールして選択し、[選択] をクリックします。On the .NET Framework tab, scroll to System.dll and click Select.

    3. System.ServiceProcess.dll までスクロールして選択し、[選択] をクリックします。Scroll to System.ServiceProcess.dll and click Select.

    4. [OK] をクリックします。Click OK.

  2. クラスを追加し、ServiceBase から継承されるように設定します。Add a class and configure it to inherit from ServiceBase:

    public class UserService1 : System.ServiceProcess.ServiceBase  
    {
    }
    
    Public Class UserService1
       Inherits System.ServiceProcess.ServiceBase
    End Class
    
  3. 次のコードを追加してサービス クラスを設定します。Add the following code to configure your service class:

    public UserService1() 
    {
    	this.ServiceName = "MyService2";
    	this.CanStop = true;
    	this.CanPauseAndContinue = true;
    	this.AutoLog = true;
    }
    
    Public Sub New()
        Me.ServiceName = "MyService2"
        Me.CanStop = True
        Me.CanPauseAndContinue = True
        Me.AutoLog = True
    End Sub
    
  4. クラスの Main メソッドを作成し、それを使用してクラスに含まれるサービスを定義します。userService1 がクラスの名前です。Create a Main method for your class, and use it to define the service your class will contain; userService1 is the name of the class:

    public static void Main()
    {
    	System.ServiceProcess.ServiceBase.Run(new UserService1());
    }
    
    Shared Sub Main()
      System.ServiceProcess.ServiceBase.Run(New UserService1)
    End Sub
    
  5. OnStart メソッドをオーバーライドし、サービスの開始時に実行する処理を定義します。Override the OnStart method, and define any processing you want to occur when your service is started.

    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
    
  6. 他に独自の処理を定義するメソッドがあればそれをオーバーライドし、サービスが行うアクションを記述します。Override any other methods you want to define custom processing for, and write code to determine the actions the service should take in each case.

  7. サービス アプリケーションの必要なインストーラーを追加します。Add the necessary installers for your service application. 詳しくは、「方法: サービス アプリケーションにインストーラーを追加する」をご覧ください。For more information, see How to: Add Installers to Your Service Application.

  8. [ビルド] メニューの [ソリューションのビルド] をクリックして、プロジェクトを作成します。Build your project by selecting Build Solution from the Build menu.

    注意

    F5 キーを押してプロジェクトを実行しないでください。この方法ではサービス プロジェクトを実行できません。Do not press F5 to run your project — you cannot run a service project in this way.

  9. セットアップ プロジェクトと、サービスをインストールするカスタム処理を作成します。Create a setup project and the custom actions to install your service. 例については、「チュートリアル: コンポーネント デザイナーによる Windows サービス アプリケーションの作成」をご覧ください。For an example, see Walkthrough: Creating a Windows Service Application in the Component Designer.

  10. サービスをインストールします。Install the service. 詳細については、「 How to: Install and Uninstall Services」を参照してください。For more information, see How to: Install and Uninstall Services.

参照See Also

Windows サービス アプリケーションの概要Introduction to Windows Service Applications
方法 : Windows サービスを作成するHow to: Create Windows Services
方法 : サービス アプリケーションにインストーラーを追加するHow to: Add Installers to Your Service Application
方法 : サービスに関する情報のログを記録するHow to: Log Information About Services
チュートリアル: コンポーネント デザイナーによる Windows サービス アプリケーションの作成Walkthrough: Creating a Windows Service Application in the Component Designer