寻找以下basicHttpBinding的customBinding等价物

时间:2015-09-30 18:34:33

标签: .net wcf binding

我试图找出如何将以下基本http绑定转换为自定义绑定。这两个绑定似乎有一个截然不同的架构。

  <basicHttpBinding>
    <binding name="MyBinding">
      <security mode="TransportWithMessageCredential">
        <message clientCredentialType="Certificate" />
      </security>
    </binding>
  </basicHttpBinding>

1 个答案:

答案 0 :(得分:2)

不清楚为什么要将其转换为自定义绑定 - 通常在其中一个开箱即用的绑定不满足要求时使用自定义绑定。

快速执行此操作的方法是使用Yaron Naveh WCF BindingBox(通过此处answer在此处找到)。将BindingBox与提供的配置一起使用会产生以下结果:

<customBinding>
  <binding name="NewBinding0">
    <security authenticationMode="CertificateOverTransport"
               messageSecurityVersion="WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10" 
              requireDerivedKeys="false" securityHeaderLayout="Lax" />
    <textMessageEncoding MessageVersion="Soap11" />
    <httpsTransport />
  </binding>
</customBinding>

开发自定义绑定时,需要记住以下元素顺序:

  1. TransactionFlow元素(可选)
  2. ReliableSession元素(可选)
  3. 安全性(可选,可以是对称,非对称,传输级别)
  4. CompositeDuplex元素(可选)
  5. 传输升级(可选,可以是SSL流,Windows流,对等解析器)
  6. 文本编码(必填,可以是文本,二进制,MTOM,自定义)
  7. 传输(必需,可以是TCP,命名管道,HTTP,HTTPS,MSMQ的风格,自定义)
  8. 您可以从MSDN获取更多信息 - CusotmBinding Class

    修改 由于您使用的是自定义二进制编码,因此您需要将<textMessageEncoding>元素更改为<binarMessageEncoding MessageVersion="Soap11">