none
WCF 支持多种绑定协议,选择协议参照什么标准? RRS feed

答案

  • 您好,我想这跟真实需求中对传输的性能、质量、事务、安全以及异构的情况有关。
    WCF服务编程中有一些介绍。
    一点理解请参考:

    BasicHttpBinding 采用Http/Https协议,Text/MTOM编码,主要用于与旧的ASMX Web服务协作,但无法传递事务且无法使用WS*协议的优势。

    NetTcpBinding 采用Tcp协议, 二进制编码,支持事务、安全且性能较好。

    WSHttpBinding 采用Http/Https协议,Text/MTOM编码,但可以传递事务。

    还有其它绑定,如对等网、双工等,可以参考一些书籍和资料。
    2009年9月24日 13:25
  • 谢谢JiRuan的回复。
    我再补充一些:
    1.就是WCF如何使用SOAP1.1而不是SOAP1.2.就是配置BasicHttpBinding绑定。
    这个是参考解释:
    The BasicHttpBinding uses HTTP as the transport for sending SOAP 1.1 messages. A service can use this binding to expose endpoints that conform to WS-I BP 1.1, such as those that ASMX clients consume. Similarly, a client can use the BasicHttpBinding to communicate with services exposing endpoints that conform to WS-I BP 1.1, such as ASMX Web services or services configured with the BasicHttpBinding.
    2.wshttpbinding 是支持SOAP1.2规范。WS-* 规范的支持。

    3.nettcpbinding绑定协议确实是WCF自己定制的协议,而且只适用于WCF于WCF应用之间的通信。不过底层机制不变,还是使用TCP协议传输。 默认情况下,此绑定会生成一个运行时通信堆栈,该堆栈使用传输安全、用于消息传递的 TCP 和二进制消息编码机制。netTcpBinding 的默认配置比 wsHttpBinding 提供的配置更快,但是只适用于 WCF 到 WCF 的通信。可以使用可选的 securityMode 属性配置安全行为。使用可选的 reliableSessionEnabled 属性可以配置 WS-ReliableMessaging 的用法。但是在默认情况下可靠消息传递为关闭状态。
        一般来说,HTTP 系统提供的绑定(如 wsHttpBinding 和 basicHttpBinding)是默认配置为打开事项,而 netTcpBinding 绑定是默认配置为关闭事项,因此,您必须选择性加入所需事项才能获取支持,例如获取对一种 WS-* 规范的支持。这意味着在终结点之间交换消息时,TCP 的默认配置比 HTTP 绑定的默认配置更快。 HTTP协议WCF默认支持,其它的绑定协议基本属于WCF定制和封装,目的也是为了支持WCF一些特殊的服务操作数据交换模式。
    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2009年9月25日 5:04
    版主

全部回复

  • 您好,我想这跟真实需求中对传输的性能、质量、事务、安全以及异构的情况有关。
    WCF服务编程中有一些介绍。
    一点理解请参考:

    BasicHttpBinding 采用Http/Https协议,Text/MTOM编码,主要用于与旧的ASMX Web服务协作,但无法传递事务且无法使用WS*协议的优势。

    NetTcpBinding 采用Tcp协议, 二进制编码,支持事务、安全且性能较好。

    WSHttpBinding 采用Http/Https协议,Text/MTOM编码,但可以传递事务。

    还有其它绑定,如对等网、双工等,可以参考一些书籍和资料。
    2009年9月24日 13:25
  • 谢谢JiRuan的回复。
    我再补充一些:
    1.就是WCF如何使用SOAP1.1而不是SOAP1.2.就是配置BasicHttpBinding绑定。
    这个是参考解释:
    The BasicHttpBinding uses HTTP as the transport for sending SOAP 1.1 messages. A service can use this binding to expose endpoints that conform to WS-I BP 1.1, such as those that ASMX clients consume. Similarly, a client can use the BasicHttpBinding to communicate with services exposing endpoints that conform to WS-I BP 1.1, such as ASMX Web services or services configured with the BasicHttpBinding.
    2.wshttpbinding 是支持SOAP1.2规范。WS-* 规范的支持。

    3.nettcpbinding绑定协议确实是WCF自己定制的协议,而且只适用于WCF于WCF应用之间的通信。不过底层机制不变,还是使用TCP协议传输。 默认情况下,此绑定会生成一个运行时通信堆栈,该堆栈使用传输安全、用于消息传递的 TCP 和二进制消息编码机制。netTcpBinding 的默认配置比 wsHttpBinding 提供的配置更快,但是只适用于 WCF 到 WCF 的通信。可以使用可选的 securityMode 属性配置安全行为。使用可选的 reliableSessionEnabled 属性可以配置 WS-ReliableMessaging 的用法。但是在默认情况下可靠消息传递为关闭状态。
        一般来说,HTTP 系统提供的绑定(如 wsHttpBinding 和 basicHttpBinding)是默认配置为打开事项,而 netTcpBinding 绑定是默认配置为关闭事项,因此,您必须选择性加入所需事项才能获取支持,例如获取对一种 WS-* 规范的支持。这意味着在终结点之间交换消息时,TCP 的默认配置比 HTTP 绑定的默认配置更快。 HTTP协议WCF默认支持,其它的绑定协议基本属于WCF定制和封装,目的也是为了支持WCF一些特殊的服务操作数据交换模式。
    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2009年9月25日 5:04
    版主