【问题标题】:Looking for customBinding equivalent for the following basicHttpBinding为以下 basicHttpBinding 寻找 customBinding 等效项
【发布时间】:2015-09-30 18:34:32
【问题描述】:

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

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

【问题讨论】:

  • 为什么要转换为自定义绑定?开箱即用的 basicHttpBinding 是否满足您的需求?
  • 我们要应用的自定义二进制编码。自定义绑定让我们可以轻松完成。
  • 啊,好吧 - 这很有道理。希望我下面的回答可以让您朝着正确的方向前进。

标签: .net wcf binding


【解决方案1】:

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

一个快速的方法是使用 Yaron Naveh 的WCF BindingBox(通过这个answer 在 SO 上找到)。将 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 流、Peer Resolver)
  6. 文本编码(必填,可以是文本、二进制、MTOM、自定义)
  7. 传输(必需,可以是 TCP、命名管道、HTTP、HTTPS、MSMQ 风格、自定义)

您可以从 MSDN 获取更多信息 - CusotmBinding Class

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

【讨论】:

  • messageSecurityVersion 属性的值让我眼花缭乱。我将不得不测试答案,但已经为 WCF BindingBox +1。
  • 伟大的 - 快乐的编码:)
猜你喜欢
  • 2023-03-03
  • 1970-01-01
  • 2010-10-06
  • 2022-07-19
  • 1970-01-01
  • 2011-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多