Wcf-self-hosting
提供:Dev Guides
WCF-セルフホスティング
ここでは、WCFサービスはコンソールアプリケーションでホストされています。 以下に、プロセス全体を説明する適切な手順を順番に実行するプロセスを示します。
- ステップ1 *-最初に、サービスコントラクトとその実装を作成しましょう。 コンソールアプリケーションを作成し、MyCalculatorServiceという名前を付けます。 これは、2つの数字の加算を返す簡単なサービスです。
- ステップ2 *-次に、ソリューションエクスプローラーで参照を右クリックし、[参照の追加]をクリックします。 次のウィンドウが開きます。 System.ServiceModel参照をプロジェクトに追加します。
- ステップ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」という名前を付けます。
- ステップ7 *-system.servicemodelおよびプロジェクトMyCalculatorWCFServiceの参照を追加します。
この背後にあるコードは次のとおりです-
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();
}
}
}