wcf服务端配置基本分为3个部分,bindings,services,behaviors,如下
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="httpBinding" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="120" maxStringContentLength="2147483647" maxArrayLength="2147483647" />
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="WcfFx.ConfigCenter.WcfConfigService" behaviorConfiguration="myBehavior">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="httpBinding" contract="WcfFx.Core.IWcfConfigService" />
<endpoint address="mex" binding="mexHttpBinding" name="mexHttpBinding" contract="IMetadataExchange" />
</service>
<service name="WcfFx.LogCenter.WcfLogService" behaviorConfiguration="myBehavior">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="httpBinding" contract="WcfFx.Core.IWcfLogService" />
<endpoint address="mex" binding="mexHttpBinding" name="mexHttpBinding" contract="IMetadataExchange" />
</service>
<service name="WcfTp.ExpLib.DHLShippingService" behaviorConfiguration="myBehavior">
<endpoint binding="basicHttpBinding" bindingConfiguration="httpBinding" contract="SinoLib.BizInterface.IDHLShippingService" />
</service>
<service name="SinoLib.BLL.Cachehistory" behaviorConfiguration="myBehavior">
<endpoint binding="basicHttpBinding" bindingConfiguration="httpBinding" contract="SinoLib.BizInterface.ICachehistory" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="myBehavior">
<serviceMetadata httpGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceThrottling maxConcurrentCalls="200" maxConcurrentSessions="200" maxConcurrentInstances="200" />
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="false" aspNetCompatibilityEnabled="false" />
</system.serviceModel>
其中srevice是对外公开的服务,bindings和behaviors是为service服务的,分别为service配置绑定和行为,如service behaviorConfiguration是调用behaviors的配置,endpoint bindingConfiguration是调用binding的配置;服务端通过endpoint实现对服务的监听,客户端通过endpoint发起请求。
而客户端更简单,只需要配置client即可
<system.serviceModel>
<client>
<endpoint address="http://localhost/Service1.svc" binding="basicHttpBinding" bindingConfiguration="" contract="WcfService1.IService1" name="Service1" kind="" endpointConfiguration=""/>
<endpoint address="http://192.168.2.120:8088/TKdDhllabelhistoryService.svc" binding="basicHttpBinding" bindingConfiguration="" contract="SinoLib.BizInterface.ITKdDhllabelhistory" name="TKdDhllabelhistoryService" kind="" endpointConfiguration=""/>
</client>
</system.serviceModel>
客户端的endpoint即客户端终结点,address为服务的路径,这点无需解释;binding是服务端配置的传输协议,此实例中服务端的的服务调用的binding是httpBinding即属于basicHttpBinding,这个必须与服务端一致,contract为服务契约,也就是服务使用的接口