超简单WCF例子 - 配置文件版


我最欣赏linux的可定制性

so, 配置本身就是一种美

<system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        
        <behavior name="CalcServiceBehavior">
          <serviceMetadata httpGetEnabled="true"/>
        behavior>
      serviceBehaviors>
    behaviors>
    <services>

      <service name="ServiceLib.CalcService" behaviorConfiguration="CalcServiceBehavior">
        <host>
          <baseAddresses>
            <add baseAddress="http://127.0.0.1:8888/Calc"/>
          baseAddresses>
        host>
        <endpoint address=""
                  binding="wsHttpBinding"
                  bindingConfiguration=""
                  contract="ServiceLib.ICalcService" />
        
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      service>
    services>
  system.serviceModel>
配置服务

同样的,代码就可以省略为以下内容

using (ServiceHost host = new ServiceHost(typeof(CalcService)))
{
    host.Opened += (a, b) => Console.WriteLine("服务已开启");
    host.Open();
    Console.Read();
}

而,客户端无须做任何修改

~~~

再来看两种元数据发布方式。

你把第一种去掉试试 (●'?'●)

又报错了 ------

不管了,网上的解释大概就是:第一种是HTTP—GET方式获取,而第二种以终结点形式发布则支持WS—*

上面那句话是谁说的?怎么会出现在那?不管了,存在既有理,就让它留在那儿吧

咳,下一篇将介绍WCF的亮点之一,多协议支持。

&:思考会让你更睿智

WCF