2010-10-04 80 views
8

我想用服务器数据更新客户端数据,反之亦然。目前我使用的BasicHttpBinding比wsHttpBinding快。 我requirnment是才达到:BasichttpBinding vs WCF的WSHttpBinding

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

两个结合是适合在这种情况下basicHttpBinding的和的wsHttpBinding。 那么我应该使用哪种绑定?和BasicHttp和wsHttp绑定有什么区别?

回答

16

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

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

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

所以你回到了经典的权衡:你可以有快速或安全 - 选择一个。没有什么“魔法”的方式同时存在 - 安全性会增加开销并因此减慢速度。什么对你更重要:安全通信或快速通信?

+1

安全对我来说更重要。我们是否可以用basicHttpBinding来实现ssl或者只有wsHttpbinding是安全的东西。如果我们可以在basicHttpBinding中使用ssl,那么basicHttp和wsHttp Bindings会有什么显着的性能差异。 – 2010-10-05 05:12:42

+0

是否可以实现没有SSL或https://的WSHttpBinding? – 2013-10-07 14:54:56

+0

@MuraliMurugesan:可能很晚,但对于其他人阅读:是的,这是可能的 - 只需使用安全模式:'消息'。 Message Security提供了端到端的独立于传输的安全性。 – 2014-04-02 14:34:46

6

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

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

在我看来,我会坚持basicHttpBinding,除非有特定的WS- *标准功能,你需要。在WS-Security方面,它带来的功能就是消息级加密(HTTPS提供的传输级加密之外)。对我来说,传输加密可以确保您的消息在通过有线传输时被加密,但消息级别加密的唯一好处是不需要使用传输级别安全性的开销,而只是希望在消息的特定区域实现轻量级加密。

这里的WS规范列表从维基百科为您的信息:

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

+0

当通信不知道通过点对点的安全通道时,传输安全性可能是有益的。当客户端向服务发送消息并且消息通过中介路由时,传输安全并不总能得到保证,并且消息级安全性成为有用的选择。 – BitMask777 2011-07-26 18:56:15

2

通常我们推荐一种快速安全的传输(如SSL)安全。这是因为任何类型的消息级别的安全性在加密/签名中都是CPU密集型的。

所以,你可以使用基本的http绑定和传输安全性在大多数情况下没有太多的折衷perf。

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