为什么当我在服务器上有customBinding时,客户端配置显示wsHttpBinding

本文关键字:客户端 配置 wsHttpBinding 显示 customBinding 服务器 为什么 | 更新日期: 2023-09-27 18:28:58

我在WCF web服务上使用customBinding。但是,当我添加Visual Studio 2012中的服务引用时,客户端的配置显示wsHttpBinding,如下所示:

<bindings>
    <wsHttpBinding>
        <binding name="CustomBinding_IService1" />
    </wsHttpBinding>
</bindings>

这背后的原因是什么?

我的完整服务器配置可以在这里找到:如何使WCF服务服务器客户端时差独立?

为什么当我在服务器上有customBinding时,客户端配置显示wsHttpBinding

您的自定义绑定可能是以支持WSHttpBinding功能的方式配置的。根据WCF绑定转换器,这是与ws-http默认设置匹配的自定义绑定:

<customBinding>
  <binding name="NewBinding0">
    <transactionFlow />
    <security authenticationMode="SecureConversation" messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10">
      <secureConversationBootstrap authenticationMode="UserNameForSslNegotiated" messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10" />
    </security>
    <textMessageEncoding />
    <httpTransport />
  </binding>
</customBinding>

(您的自定义绑定可能会更短,因为上面的一些值是默认值,所以您可以省略它们)

现在——这可能与您的另一个问题有关——时间偏移设置与从服务器到客户端的WSDL不相称。您需要在服务器和客户端上手动配置它们。