看网上的代码有的服务端代码里有<Client></Client>为什么呢
像这样
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.ServiceModel> <services> <service name="名称空间.类型名" behaviorConfiguration="behavior名"> <endpoint address="URI" binding="basicHttpBinding" contract="Contract全限定名" bindingConfiguration="binding名" name=""> </endpoint> </service> </services> <bindings> </bindings> <behaviors> <serviceBehaviors> <behavior name=""> </behavior> </serviceBehaviors> <endpointBehaviors> </endpointBehaviors> </behaviors> <client> <endpoint address="URI" binding="" bindingConfiguration="binding名" contract="Contract全限定名" name="endpoint配置名" /> </client> </system.ServiceModel> </configuration>
这个很正常啊,比如我的web既可以提供WCF服务,也可以访问别的WCF服务,那web.config中既有服务器段可以客户端的配置
按照我的理解,这里的client是指你在代码中实例化一个client的默认配置。
SampleServiceClient wcfClient = new SampleServiceClient(); //这个client的默认配置 wcfClient.SampleMethod(); wcfClient.Close();
属性说明:
address - ServiceHost的这个Endpoint的address
binding - 指定这个Endpoint使用的binding,这个binding可以是系统预定义的9个binding之一,比如是basicHttpBinding
contract - 指定这个Endpoint对应的Contract的全限定名(名称空间.类型名)
name - Endpoint的名称,客户端代理类的构造方法中的endpointConfigurationName对应到这个name
bindingConfiguration - 指定客户端binding的具体设置,指向<bindings>元素下同类型binding的name
如果有多个endpoint,系统会默认使用最后一个endpoint的配置。
已经想通了,问这个问题问的有点2,脑子短路了,呵呵。。。