Wcf-windows-service-hosting

提供:Dev Guides
移動先:案内検索

WCF-Windowsサービスホスティング

Windowsサービスホスティングの操作は簡単です。 以下に、プロセスを簡単に説明する必要なコーディングとスクリーンショットの手順を示します。

  • ステップ1 *-では、WCFサービスを作成しましょう。 Visual Studio 2008を開き、[新規]→[プロジェクト]をクリックして、テンプレートから[クラスライブラリ]を選択します。

WcfホスティングサービスWindowsサービス1

  • ステップ2 *-参照System.ServiceModelをプロジェクトに追加します。 これは、WCFサービスの作成に使用されるコアアセンブリです。
  • ステップ3 *-次に、ISimpleCalulatorインターフェイスを作成できます。 以下に示すように、サービスと操作の契約属性を追加します-
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;

namespace WindowsServiceHostedService{
   [ServiceContract]
   public interfaceISimpleCalculator {
      [OperationContract]
      int Add(int num1, int num2);

      [OperationContract]
      int Subtract(int num1, int num2);

      [OperationContract]
      int Multiply(int num1, int num2);

      [OperationContract]
      double Divide(int num1, int num2);
   }
}
  • ステップ4 *-以下に示すようにISimpleCalculatorインターフェースを実装します-
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WindowsServiceHostedService {
   Class SimpleCalulator : ISimpleCalculator {
      Public int Add(int num1, int num2) {
         return num1 + num2;
      }
      Public int Subtract(int num1, int num2) {
         return num1 - num2;
      }
      Public int Multiply(int num1, int num2) {
         return num1 * num2;
      }
      Public double Divide(int num1, int num2) {
         if (num2 != 0)
            return num1/num2;
         else
            return 0;
      }
   }
}
  • ステップ5 *-プロジェクトをビルドし、dllを取得します。 これで、WCFサービスの準備が整いました。 WindowsサービスでWCFサービスをホストする方法を確認します。

-このプロジェクトでは、同じプロジェクトでコントラクトとサービス(実装)の両方を作成していることに言及しています。 ただし、両方が異なるプロジェクトにある場合は、常に良い習慣です。

  • ステップ6 *-Visual Studio 2008を開き、[新規]→[プロジェクト]をクリックして、[Windowsサービス]を選択します。

WcfホスティングサービスWindowsサービス1

  • ステップ7 *-プロジェクトへの参照として「WindowsServiceHostedService.dll」を追加します。 このアセンブリはサービスとして機能します。

WcfホスティングサービスWindowsサービス4

  • ステップ8 *-サービスのOnStartメソッドを使用して、WCFのホスティングコードを記述できます。 1つのサービスホストオブジェクトのみを使用していることを確認する必要があります。 OnStopメソッドは、サービスホストを閉じるために使用されます。 次のコードは、WindowsサービスでWCFサービスをホストする方法を示しています。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Description;

namespace WCFHostedWindowsService {
   Partial class WCFHostedWindowsService : ServiceBase {
      ServiceHostm_Host;

      Public WCFHostedWindowsService() {
         InitializeComponent();
      }
      Private void InitializeComponent() {
         thrownewNotImplementedException();
      }
      protectedoverridevoidOnStart(string[] args) {
         if (m_Host != null) {
            m_Host.Close();
         }

        //Create a URI to serve as the base address
         UrihttpUrl = newUri("http://localhost:8090/WindowsServiceHostedService/SimpleCalculator");

        //Create ServiceHost
         m_Host = newServiceHost typeof(WindowsServiceHostedService.SimpleCalulator), httpUrl);

        //Add a service endpoint
         m_Host.AddServiceEndpoint (typeof(WindowsServiceHostedService.ISimpleCalculator), newWSHttpBinding(), "");

        //Enable metadata exchange
         ServiceMetadataBehaviorsmb = newServiceMetadataBehavior();
         smb.HttpGetEnabled = true;
         m_Host.Description.Behaviors.Add(smb);

        //Start the Service
         m_Host.Open();
      }
      protectedoverridevoidOnStop() {
         if (m_Host != null) {
            m_Host.Close();
            m_Host = null;
         }
      }
      staticvoid Main() {
         ServiceBase[] ServicesToRun;
         ServicesToRun = newServiceBase[] {
            newWCFHostedWindowsService();
         }
         ServiceBase.Run(ServicesToRun);
      }
   }
}
  • ステップ9 *-サービスをインストールするには、Windowsサービスのインストーラークラスが必要です。 そのため、新しいインストーラークラスをプロジェクトに追加します。これは、インストーラークラスから継承されます。 以下に、サービス名、スタートアップの種類などを示すコードを示します。 サービスの。
using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceProcess;
using System.Configuration.Install;
using System.ComponentModel;
using System.Configuration;

namespace WCFHostedWindowsService {
   [RunInstaller(true)]
   Public class WinServiceInstaller : Installer {
      Private ServiceProcessInstaller process;
      Private ServiceInstaller service;

      Public WinServiceInstaller() {
         process = newServiceProcessInstaller();
         process.Account = ServiceAccount.NetworkService;
         service = newServiceInstaller();

         service.ServiceName = "WCFHostedWindowsService";
         service.DisplayName = "WCFHostedWindowsService";
         service.Description = "WCF Service Hosted";
         service.StartType = ServiceStartMode.Automatic;

         Installers.Add(process);
         Installers.Add(service);
      }
   }
}
  • ステップ10 *-プロジェクトをビルドして、実行可能ファイルWCFHostedWindowsService.exeを取得します。 次に、Visual Studioコマンドプロンプトを使用してサービスをインストールする必要があります。 そのため、[スタート]→[すべてのプログラム]→[Microsoft Visual Studio 2008]→[Visual Studio Tools]→[Visual Studio Command Prompt]をクリックしてコマンドプロンプトを開きます。 install utilユーティリティアプリケーションを使用して、以下に示すようにサービスをインストールできます。

Wcf Hosting Services Windows Service 7