WCF 配置系列(四) ---客户端配置

 

WCF最重要的是服务端的配置,客户端的配置大多根据服务端的配置不同而相应地改变。客户端的配置主要包含两个部分:

一个是导出的服务端Binding配置,

另一个是Client配置节点。

客户端配置示例如下:

<system.serviceModel>

  <bindings>

    <wsHttpBinding>

        <binding name="WSHttpBinding_ClassName" closeTimeout="00:01:00"

              openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"

              bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"

              maxBufferPoolSize="6553600" maxReceivedMessageSize="6553600" messageEncoding="Text"

              textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">

          <readerQuotas maxDepth="32" maxStringContentLength="819200" maxArrayLength="1638400"

              maxBytesPerRead="409600" maxNameTableCharCount="1638400" />

          <reliableSession ordered="true" inactivityTimeout="00:10:00"

              enabled="false" />

          <security mode="None">

            <transport clientCredentialType="Windows" proxyCredentialType="None"

             realm="" />

            <message clientCredentialType="Windows" negotiateServiceCredential="true"

             establishSecurityContext="true" />

          </security>

        </binding>

    </wsHttpBinding>

  </bindings>

  <client>

    <endpoint address="http://localhost/WcfService/ServiceName/"

        binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ClassName"

        contract="Services.IService" name="WSHttpBinding_ClassName">

      <identity>

        <dns value="localhost" />

      </identity>

    </endpoint>

  </client>

</system.serviceModel>

其实,这两个配置节点在添加服务引用时会自动根据服务端的信息生成,大多数时候不需要客户端进行修改。需要注意的是,如果服务端配置了多个endpoint,那么客户端只能获得当前使用的endpoint的信息,需要手动添加其他endpoint信息。另外,导出的Bindings配置节中的信息比较多,VS自动把服务端配置信息的默认值也加入了配置文件

你可能感兴趣的:(WCF)