かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

WCF RIA ServicesでSOAP endpointを公開するためのメモ

ダウンロードするもの

WCF RIA Services Toolkit

サーバー側に追加するアセンブリ

  • C:\Program Files\Microsoft SDKs\RIA Services\v1.0\Toolkit\Libraries\Server\Microsoft.ServiceModel.DomainServices.Hosting.dll

web.configに追加するもの

  <system.serviceModel>
    <domainServices>
      <endpoints>
        <!-- こいつ!! -->
        <add name="Soap"
type="Microsoft.ServiceModel.DomainServices.Hosting.SoapXmlEndpointFactory, Microsoft.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      </endpoints>
    </domainServices>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"
        multipleSiteBindingsEnabled="true" />
  </system.serviceModel>

クライアント側で追加するURL

http://ホスト名:ポート番号/プロジェクト名-web-DomainServiceクラス名.svc

コンソールアプリケーションでの使用

namespace ConsoleApplication1
{
    using System;
    using ConsoleApplication1.ServiceReference1;

    class Program
    {
        static void Main(string[] args)
        {
            var client = new EduDomainServiceSoapClient();
            var result = client.GetPeople();
            foreach (var p in result.RootResults)
            {
                Console.WriteLine("{0}, {1}", p.ID, p.Name);
            }
            client.Close();
        }
    }
}