WCFサービスを作成、起動します。
手順
[新しいプロジェクト]でコンソールアプリケーションを作成する。
System.ServiceModelへの参照を追加する。
ソースコードを記述する。
using System; using System.ServiceModel; namespace HellowWCF1 { /// <summary> /// サービスのコントラクトを定義する /// </summary> [ServiceContract(Namespace = "http://My.WCF.Samples")] public interface IServeice1 { [OperationContract] string getMessage(string inputMessage); } /// <summary> /// サービス実装クラス /// </summary> public class Service1 : IServeice1 { public string getMessage(string inputMessage) { Console.WriteLine("getMessageが呼び出されました。"); return "ようこそ、" + inputMessage; } } class Program { static void Main(string[] args) { Uri baseAddr = new Uri("http://localhost:8000/WCFSampleService"); // サービスの型およびベースアドレスを指定して、サービスホストを作成します。 using (ServiceHost svcHost = new ServiceHost(typeof(Service1), baseAddr)) { Console.WriteLine("サービスが立ち上がります..."); // コントラクト、バインディング、相対アドレスを指定して、エンドポイントを追加します。 svcHost.AddServiceEndpoint(typeof(IServeice1), new BasicHttpBinding(), "HelloWCF"); // サービスホストをオープンします。 svcHost.Open(); Console.WriteLine("Enterキーを押すと、サービスが停止されます。"); Console.ReadLine(); // サービスホストを閉じます。 svcHost.Close(); } } } }
F5キーを押す。
まとめ
P.53, 54から引用します。
- System.ServiceModelへの参照は必須です。
- WCFサービスのコントラクトは、ServiceContract属性のインターフェースで定義されます。
- そのメソッドは、OperationContract属性が付与されるべきです。
- ホストされるWCFサービスのタイプは、サービス実装クラスで定義されます。
- ベースアドレスにより、定義されたWCFサービスホストへの参照ができます。
- 1つのWCFサービスホストには、1つ以上のエンドポイントを持つことができます。
- 1つのエンドポイントは、1つの特定のWCFサービス(インターフェース)を提供します。
- 特定のエンドポイントへの参照は、ベースアドレスに対する相対アドレスを利用することができます。
- 従来の1つのインターフェースは複数のメソッドの集合と同じように、1つのWCFサービスコントラクトには、複数のオペレーションコントラクトとデータコントラクトを含むことができます。
- ホストされるWCFサービスのタイプとベースアドレスをパラメータとして、WCFサービスホストのServiceHostクラスのインスタンスを生成することができます。
- 特定のWCFサービスのコントラクトとバインディングおよび相対アドレスの3要素を含むエンドポイントをホストに追加して、明示的な構成パラメータでホストをインスタンス化することができます。