http://blogs.wankuma.com/rti/archive/2008/12/10/163292.aspx
WCF メモ(その2)
http://blogs.wankuma.com/rti/archive/2008/12/08/162980.aspx
WCF メモ
の続きです。
今回は、前回作った WCF サービスライブラリを提供するための
簡単なホストアプリケーション
を作ります。
以下は、Windows Form アプリケーションで作成した新しいプロジェクトです。
using System;
using System.Windows.Forms;
using System.ServiceModel; // Add
using WcfServiceLibrary1; // Add
namespace WindowsFormsApplication1 {
public partial class Form1 : Form {
private static ServiceHost serviceHost = null;
private const string URI = @"http://localhost:8080/WcfServiceLibrary1";
public Form1() {
InitializeComponent();
serviceHost = new ServiceHost(typeof(Service1), new Uri(URI));
serviceHost.Open();
this.FormClosed += (s, e) => serviceHost.Close();
}
}
}
内容は単純で、前回作成した WCF サービスライブラリを参照して、サービスホストオブジェクトを生成して Open します。
そして、フォームが閉じたら、サービスホストオブジェクトを Close しているだけです。
これによって、フォームが起動中はサービスを提供している状態になります。
接続先を localhost としているのは 1 台の PC で、サービスとクライアントをテストするためです。
次に、アプリケーション構成ファイルを作成します。
現在のプロジェクトに「新しい項目の追加」から「アプリケーション構成ファイル」というテンプレートを選択することで App.Config ファイルを追加します。
そして、以下のように書き換えます。
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="NewBehavior">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="NewBehavior" name="WcfServiceLibrary1.Service1">
<endpoint
address=“http://localhost:8080/WcfServiceLibrary1”
binding=“basicHttpBinding”
bindingConfiguration=""
contract="WcfServiceLibrary1.IService1”/>
</service>
</services>
</system.serviceModel>
着目すべき点を赤字にしておきました。
詳細な部分は、現時点ではおまじないだと思って下さい。