BasichttpBinding与WCF的WSHttpBinding

时间:2010-10-04 04:25:37

标签: wcf

我想用服务器数据更新客户端数据,反之亦然。目前我使用的是BasicHttpBinding,它比wsHttpBinding更快。 我的要求是要实现:

  • 快速数据通信
  • 安全沟通

在这种情况下,两个绑定适用于BasicHttpBinding和wsHttpBinding。 我应该使用哪种绑定?和BasicHttp和wsHttp绑定有什么区别?

3 个答案:

答案 0 :(得分:16)

如果您需要安全性,请使用wsHttpBinding。它实现了所有各种安全功能,如消息或传输安全性,作为Windows凭据提供的客户端凭据,用户名/密码或证书。它支持可靠的消息传递等等 - 一大堆WS *标准。

BasicHttpBinding就是这样 - 非常非常基础。它或多或少是ASMX Web服务 - 几乎没有设置,没有安全性(除了通过HTTPS路由)。

如果您需要快速,请使用netTcpBinding - 但这不适用于互联网连接。如果这不起作用,请使用basicHttpBinding - 它比wsHttpBinding更快,更精简,更少开销。

所以你回到了经典的权衡:你可以快速或安全 - 选择一个。没有“神奇”的方式同时拥有两者 - 安全性确实增加了开销,从而减慢了速度。对您来说更重要的是:安全通信或快速通信?

答案 1 :(得分:6)

wsHTttpBinding实现了Web服务通信的WS-Security标准,但是,如果您使用basicHttpBinding,我相信HTTPS将为您提供足够的安全性。

您还应该记住,wsHttpBinding限制了您的互操作性,因为wsHttpBinding仅与支持WS- *(SOAP 1.2)的客户端兼容。

在我看来,除非你需要特定的WS- *标准功能,否则我会坚持使用basicHttpBinding。就WS-Security而言,它附带的功能是消息级加密(超出HTTPS提供的传输级加密)。对我来说,传输加密确保您的邮件在通过网络传输时被加密,具有邮件级加密的唯一好处是不希望使用传输级安全性的开销,而只是希望在邮件的特定区域中进行更轻量级的加密。

以下是维基百科的WS规范列表,供您参考:

http://en.wikipedia.org/wiki/List_of_Web_service_specifications

答案 2 :(得分:2)

通常我们建议使用SSL等快速安全传输来提高安全性。这是因为任何类型的消息级别安全性在加密/签名中都是CPU密集型的。

所以你可以在大多数情况下使用基本的http绑定和传输安全性,而不需要在perf中进行太多的权衡。

如果您没有使用任何更丰富的WS *协议或会话等,那么您可以坚持使用基本的http绑定。