Wcf-self-hosting

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

WCF-セルフホスティング

ここでは、WCFサービスはコンソールアプリケーションでホストされています。 以下に、プロセス全体を説明する適切な手順を順番に実行するプロセスを示します。

  • ステップ1 *-最初に、サービスコントラクトとその実装を作成しましょう。 コンソールアプリケーションを作成し、MyCalculatorServiceという名前を付けます。 これは、2つの数字の加算を返す簡単なサービスです。

Wcf Hosting Services Self 1

  • ステップ2 *-次に、ソリューションエクスプローラーで参照を右クリックし、[参照の追加]をクリックします。 次のウィンドウが開きます。 System.ServiceModel参照をプロジェクトに追加します。

Wcf Hosting Services Self 2

  • ステップ3 *-ISimpleCalculatorインターフェースを作成し、以下に示すようにServiceContractおよびOperationContract属性をクラスおよび関数に追加します。 これらの契約については、後のセッションで詳しく説明します。 これらのコントラクトは、このサービスを使用するためにメソッドを外部に公開します。
  • ステップ4 *-このファイルの背後にあるコードは次のとおりです-
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;

namespace MyCalculatorWCFService {
   [ServiceContract()]
   Public interface ISimpleCalculator {
      [OperationContract()]
      int Add(int num1, int num2);
   }
}
  • ステップ5 *-MyCalculatorServiceは、以下に示すIMyCalculatorServiceインターフェイスの実装クラスです。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MyCalculatorWCFService {
   Class SimpleCalculator : ISimpleCalculator {
      Public int Add(int num1, int num2) {
         return num1 + num2;
      }
   }
}
  • ステップ6 *-これで、サービスの準備ができました。 ホスティングプロセスを実装しましょう。 新しいコンソールアプリケーションを作成し、「MyCalculatorWCFServiceHost」という名前を付けます。

Wcf Hosting Services Self 5

  • ステップ7 *-system.servicemodelおよびプロジェクトMyCalculatorWCFServiceの参照を追加します。

Wcf Hosting Services 6

この背後にあるコードは次のとおりです-

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MyCalculatorWCFService;
using System.ServiceModel;
using System.ServiceModel.Description;

namespace MyCalculatorWCFServiceHost {
   class Program {
      static void Main(string[] args) {
        //Create a URI to serve as the base address
         UrihttpUrl = newUri("http://localhost:8090/MyCalculatorWCFService/SimpleCalculator");

        //Create ServiceHost
         ServiceHost host = newServiceHost(typeof(MyCalculatorWCFService.ISimpleCalculator), httpUrl);

        //Add a service endpoint
         host.AddServiceEndpoint(typeof(MyCalculatorWCFService.ISimpleCal culator), newWSHttpBinding(), "");

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

        //Start the Service
         host.Open();
         Console.WriteLine("Service is host at " + DateTime.Now.ToString());
         Console.WriteLine("Host is running... Press  key to stop");
         Console.ReadLine();
      }
   }
}

Wcf Hosting Services Self 8