WCF绑定方式选择

1. 基于HTTP的绑定

BasicHttpBindingWSHttpBindingWSDualHttpBindingWSFederationHttpBinding选项适合于通过XML Web服务协议提供契约类型。显然,如果需要使该服务可适用于更多场合(多种操作系统和多种编程语言),这些就是需要关注的绑定,因为所有这些绑定类型都基于XML表示编码数据并且使用HTTP传送数据。

在表25-3中,注意到可以在代码中表示WCF绑定(通过System.ServiceModel名称空间中的类类型),或者作为在*.config文件中定义的XML属性表示WCF绑定。

25-3  HTTP为中心的WCF绑定

   

BasicHttpBinding

<basicHttpBinding>

用于绑定符合WS-Basic Profile

 (WS-I Basic Profile 1.1)WCF

服务。该绑定使用HTTP作为

传送方式,并且使用Text/XML

作为默认消息编码

WSHttpBinding

<wsHttpBinding>

类似于BasicHttpBinding,但是

提供了更多的Web服务特性。

该绑定添加对事务、可靠消息发

送和WS-Addressing的支持

WSDualHttpBinding

<wsDualHttpBinding>

类似于WSHttpBinding,但是用

于与双向契约结合使用(例如,

服务和客户可以来回发送消息)

该绑定只支持SOAP安全性,并

且需要可靠的消息发送

WSFederationHttpBinding

<wsFederationHttpBinding>

安全的和可互操作的绑定,该绑定

支持WS-Federation协议,并且允

许位于联盟内的组织有效地验

证和授权用户


如同其名称所建议的那样,BasicHttpBinding是所有以Web服务为中心的协议中最简单的协议。特别是,该绑定将确保WCF服务符合由WS-I定义的名为WS-I Basic Profile 1.1的规范。使用这种绑定的主要原因是维护对以前构建用于与ASP.NET Web服务通信的应用程序的向后兼容性(1.0版本以来,ASP.NET Web服务已经成为.NET库的一部分)

WSHttpBinding协议不仅集成了对WS-*规范(事务、安全性和可靠会话)子集的支持,而且支持使用消息传输优化机制(Message Transmission Optimization MechanismMTOM)处理二进制数据编码的能力。

WSDualHttpBinding的主要优点是它添加了允许调用者和发送方使用双向消息发送(duplex messaging)通信的能力,这是一种表示调用者和发送方可以参加双向会谈的流行方法。在选择WSDualHttpBinding时,可以与WCF发布/订阅事件模型建立关联。

最后,WSFederationHttpBinding是基于Web服务的协议,在安全性最为重要时就需要使用该协议。该绑定支持WS-TrustWS-SecurityWS-SecureConversation规范,通过WCF CardSpace API表示这些规范。

2. 基于TCP的绑定

如果正在构建一个分布式系统,该系统涉及使用.NET 3.0/3.5库配置的一组连网机器(换句话说,所有机器都运行Windows XPWindows Server 2003Windows Vista),就可以通过绕开Web服务绑定并选择使用TCP绑定来增强性能,TCP绑定确保以紧凑二进制格式(而不是XML)编码所有数据。同样,在使用如表25-4所示的绑定时,客户和主机必须是.NET应用程序。

25-4  TCP为中心的WCF绑定

   

NetNamedPipeBinding

<netNamedPipeBinding>

用于相同机器上不同.NET

应用程序之间通信的安全的、

可靠的、优化的绑定

NetPeerTcpBinding

<netPeerTcpBinding>

为对等(P2P)网络应用程序

提供安全的绑定

NetTcpBinding

<netTcpBinding>

适合于不同机器上.NET

应用程序之间通信的

安全的、优化的绑定


NetTcpBinding
类使用TCP在客户和WCF服务之间移动二进制数据。前面提及,这将导致比Web服务协议更佳的性能,但是只限于内部应用程序解决方案。此外,NetTcpBinding支持事务、可靠的会话和安全的通信。

类似于NetTcpBindingNetNamedPipeBinding支持事务、可靠的会话和安全的通信,但是它不能够执行跨机器的调用。如果您正在寻找在相同机器上的WCF应用程序之间推动数据(例如,跨越应用程序的域通信)的最快速方法,NetNamedPipeBinding绑定就是最佳的选择。至于NetPeerTcpBinding,可查阅.NET Framework 3.5 SDK文档以了解关于P2P连网的细节。

3. 基于MSMQ的绑定

最后,如果尝试集成Microsoft MSMQ服务器,则可以立刻想到使用NetMsmqBindingMsmqIntegrationBinding绑定。本章中不会介绍使用MSMQ绑定的细节,但是表25-5归档了每个MSMQ绑定的基本作用。

25-5  MSMQ为中心的WCF绑定

MsmqIntegrationBinding

<msmqIntegrationBinding>

该绑定可用于允许

WCF应用程序向已有的

MSMQ应用程序发送

消息以及从这种应用程

序接收消息,这种应用

程序使用COM

本地C++或定义在

System.Messaging名称

空间中的类型

NetMsmqBinding

<netMsmqBinding>

这个排队的绑定适合

于不同机器上的

.NET应用程

序之间的通信

 转自:http://book.51cto.com/art/200910/159190.htm

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值