第四章 绑定

正如第三章“信道”所描述的,信道栈是一个由一个或多个信道组成用来处理消息的层次通信栈。绑定是预先设置的信道栈。它们代表了在客户端和服务端之间的线上契约。每个绑定由通信中涉及的传输,编码和协议确定。WCF使用绑定为多样化通信场景集合配置信息。最普通的通信场景,比如网络服务,REST/POX 服务和基于队列的应用都在盒子外面提供。例如,basicHttpBinding绑定意味着使用基于ASP.NET Web Services的服务或者与WS-I 基础协议1.1 相适应的服务。ws2007HttpBinding wsHttpBinding 绑定类似于basicHttpBinding绑定,但是它们支持更多的特性,比如可信赖消息和事务,而且使用新的标准WS-Addressing. ws2007HttpBinding 绑定继承自.NET 3.5而且比wsHttpBinding基于更新的标准。表4.1 列举了12种用来通信的绑定以及它们中每一个的使用细节。

4.1 .NET Framework 3.5 中的WCF 通信绑定

绑定名字

描述

.NET Framework

basicHttpBinding

WS-I 基础协议1.1 网络服务

包括ASMX 网络服务

3.0/3.5

wsHttpBinding

基于高级WS-*基础网络服务

比如WS-Security, WS-Transactions,以及类似的。

3.0/3.5

wsDualHttpBinding

支持使用双工通信的两个方向的通信。

3.0/3.5

webHttpBinding

支持使用XMLJSON序列化的REST/POX-based服务

3.0/3.5

netTcpBinding

两个.NET系统间的通信

3.0/3.5

netNamedPipeBinding

支持在一个或多个.NET系统间的通信。

3.0/3.5

netMsmqBinding

使用微软消息队列的异步通信。

3.0/3.5

netPeerTcpBinding

创建端到端网络应用。

3.0/3.5

msmqIntegrationBinding

使用MSMQ通过使用队列在应用程序间收发消息

3.0/3.5

wsFederationHttpBinding

使用统一认证的高级WS-*网络服务

3.0/3.5

ws2007HttpBinding

继承自wsHttpBinding,额外支持最新的基于2007年的WS-*标准。

3.5

Ws2007FederationHttpBinding

继承自wsFederationHttpBinding,额外支持最新的WS-*2007年的标准。

3.5

4.1中的绑定可以通过代码或者配置文件设置。列表4.1 显示了由配置文件设置的basicHttpBinding绑定。使用配置文件允许开发人员在以后灵活的改变或修改绑定而不用重新编译代码。

列表4.1 在配置文件中使用绑定


 

 

BasicHttpBinding绑定类在列表4.2中显示。使用代码允许一个开发人员使用特定的绑定而杜绝了以后对它更改的可能性。

列表4.2 在代码中使用一个绑定


 

绑定通过一个绑定元素集合构成了一个信道栈。绑定元素代表了信道栈中的一个信道对象。每个绑定,比如basicHttpBinding绑定,由很多绑定元素组成。你可以在代码中通过初始化绑定而且枚举绑定元素集合来检查这个。这些在列表4.3中显示。

列表4.3 检查BindingElementCollection


 

图片4.1 显示了列表4.3中代码的输出,使用了四个out-of-the-box中的绑定:WSHttpBinding, NetTcpBinding, NetNamedPipeBindingBasicHttpBinding.我们将查看WSHttpBinding绑定以便于我们可以理解用来构成绑定的绑定元素。

默认的WSHttpBinding配置由四个绑定元素组成:HttpTransportBindingElement, TextMessageEncodingBindingElement, SymmetricSecurityBindingElementTransactionFlowBindingElement.这些绑定元素允许HTTP协议,基于文本的消息编码,安全和事务支持,等等的通信。注意列表中的绑定元素是基于默认配置的。绑定可能添加或移除绑定元素,这取决于你如何皮遏制绑定。

注意每个绑定是如何由一个或多个绑定元素组成以及那些绑定中的一部分在不同绑定间是共有的。例如,WSHttpBindingBasicHttpBinding使用HttpTransportBindingElement.这两个绑定使用同样的传输结构但是在它们支持的功能和能力上有所区分。我们将在这一章中讨论这些绑定的差异。

这章的余下部分将会关注Web Services, 扩机器,本机和基于队列的通信。这些是开发人员需要了解来开始使用WCF的通信形式。也有基于REST/POX,对等网络和统一安全形式的通信会在第十三章可编程网页,第十二章对等网络和第十一章“安全”分别介绍。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值