Architect's Log

I'm a Cloud Architect. I'm highly motivated to reduce toils with driving DevOps.

WCFサービスライブラリのホストを作成する

前回(以下のエントリー)作成したWCFサービスライブラリの、ホストを今回は作成します。
WCFサービスライブラリの作成 - プログラマーな日々
今回はWCFサービスライブラリのプロジェクトテンプレートを使用して、WCFサービスを作成します。 ...

新しいプロジェクトの追加

前回作成したソリューションに新しいプロジェクトを追加します。テンプレートは[コンソールアプリケーション]を選択します。

参照の追加

作成したプロジェクトに、[System.ServiceModel]への参照を追加します。また、前回作成したWCFサービスライブラリプロジェクトへの参照も追加します。

ファイルの追加

App.configファイルを追加します。

ソースコード

ソースコードを記述します。

App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>
        <behaviors>
            <serviceBehaviors>
                <behavior name="svcBehavior">
                    <!-- HTTPのGet要求で、サービスメタデータの取得を可能にする -->
                    <serviceMetadata httpGetEnabled="true" />
                </behavior>
            </serviceBehaviors>
        </behaviors>
        <services>
            <!-- 定義したBehaviorを適用する -->
            <service behaviorConfiguration="svcBehavior" name="WcfServiceLibrary1.Service1">
                <endpoint address="HelloWCF" binding="basicHttpBinding" name="basicHttp" contract="WcfServiceLibrary1.IService1" />
                <host>
                    <baseAddresses>
                        <add baseAddress="http://localhost:8000/WCFSampleService" />
                    </baseAddresses>
                </host>
            </service>
        </services>
    </system.serviceModel>
</configuration>
Program.cs
using System;
using System.ServiceModel;
using WcfServiceLibrary1;

namespace Host {
    class Program {
        static void Main(string[] args) {
            using (ServiceHost host = new ServiceHost(typeof(Service1))) {
                Console.WriteLine("サービスを起動します。");
                host.Open();

                Console.WriteLine("[Enter]キーを押すと、サービスが停止されます。");
                Console.ReadLine();
                host.Close();
            }
        }
    }
}

サービスの起動

作成したコンソールアプリケーションをスタートアッププロジェクトに設定し、F5を押します。

サービスが起動します。