かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

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();
        }
    }
}