我最欣赏linux的可定制性
so, 配置本身就是一种美
<system.serviceModel> <behaviors> <serviceBehaviors> <!--第一种元数据发布方式,好像只支持HTTP/HTTPS--> <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的亮点之一,多协议支持。
&:思考会让你更睿智