一、绑定概述

WCF提供了一个编程框架,可以抽象化服务创建的复杂过程。绑定允许开发人员将精力集中在问题本身上,而无需考虑如何创建允许系统运行的架构,因为WCF已经创建了架构。

绑定类型是开发人员控制WCF程序与其它消息交互的主要手段。从功能上看,绑定创建了通道工厂或通道侦听器的堆栈对象。在服务模型层和通道层中,绑定在服务模型层是可见的,但它创建的对象作用于通道层。

WCF通道模型:

绑定包含以下三个方面的内容:

  • 传输协议——要使用的协议,如HTTP或TCP
  • 编码格式——客户端与服务器之间传输消息的编码格式,如纯文本、二进制格式等等
  • 其它相关细节——用于对通信通道的设置,如消息传递的可靠性和安全性等

默认情况下,WCF支持多种传输方式、消息编码、WS-*协议、安全选项及事物特性。这些功能的组合可能会让人眼花缭乱,但绝大多数情况下可以使用一些 更贴合现实的消息需求。因此,WCF团队选择了一些广泛的消息功能,然后将它们暴露为绑定类型,放置到WCF的API中。这些默认的绑定有BasicHttpBinding、NetTcpBinding、NetNamedPipeBinding、WSHttpBinding、NetMsmqBinding等。

二、绑定的工作原理

WCF允许用各种不同的传输协议发送和接受消息。为了实现与外部世界通信,还需要决定消息的编码格式(文本、二进制和MTOM)或标准协议,实现可互操作性、完全可靠的通信。绑定是WCF框架的关键元素,利用它可以定义消息在服务端提供具体消息之前,或者在使用该服务的客户端实现之后消息的处理模式。

绑定是用一组绑定元素组成,每个绑定元素对应于传输通道和位于所谓通道栈上的协议通道。通道栈是消息在运行时经过的一系列的通道,如同ASP.NET的通道。

绑定元素的类型和顺序很重要,他们决定了通道在服务运行时的执行顺序,如下图所示:

注意:传输绑定元素和编码绑定元素必须是指定的第一个和第二个元素,这是因为它们保证了通道之间的可靠通信。事实上,当一个消息到达时,首先由传输通道接收,然后传递给编码通道,最后传递给其它所有协议通道(他们由绑定中的绑定元素来定义,如安全性、可靠性和事务性等)。

[WCF编程]5.绑定概述的更多相关文章

  1. [WCF编程]4.契约概述

    一.契约的基本概念 契约是消息参与者之间的约定.在SOA架构中,契约提供了服务通信所必需的元数据.契约用来定义数据类型,操作,消息交换模式和消息交换使用的传输协议.契约通常是在标准化平台中使用与编程语 ...

  2. [WCF编程]6.绑定行为

    一.绑定行为概述 为了支持服务端的其它本地特性,WCF定义了行为的概念.行为就是服务的本地特性,不会影响服务的通信模式.客户端并不知道服务端行为,所以行为不会出现在服务的绑定和发布的元数据中.说下WC ...

  3. [WCF编程]2.SOA概述

    一.SOA简介 1. SOA(面向服务架构)既是一种编程方式,也是软件开发的一种架构方法.根据这种架构方法,应用程序是由具有一定行为(称为服务)的功能单元组成的. 2. SOA的基本思想是构建一个粗粒 ...

  4. 【WCF--初入江湖】01 WCF编程概述

    01 WCF编程概述 SOA的优点 1.服务独立于平台和工作环境.服务并不关心自己所处的环境,也不关心与之进行通信的服务所处的    环境. 2.服务相互隔离. 3.服务对协议.格式和传输中立. 4. ...

  5. WCF编程系列(三)地址与绑定

    WCF编程系列(三)地址与绑定   地址     地址指定了接收消息的位置,WCF中地址以统一资源标识符(URI)的形式指定.URI由通讯协议和位置路径两部分组成,如示例一中的: http://loc ...

  6. .Net-WCF-图书:《WCF编程》

    ylbtech-.Net-WCF-图书:<WCF编程> <WCF编程>是2008年1月机械工业出版社出版的图书,作者是Juval Lowy.Clemens Vasters. 1 ...

  7. [WCF编程]3.WCF基础

    一.服务 服务是一组公开功能的集合. 服务内部包含了如语言.技术.版本与框架等概念,服务之间的交互只允许使用规定的通信模式 外界客户端并不知道服务内部的实现细节,所以WCF服务通常通过元数据的方式描述 ...

  8. WCF编程系列(七)信道及信道工厂

    WCF编程系列(七)信道及信道工厂   信道及信道栈 前面已经提及过,WCF中客户端与服务端的交互都是通过消息来进行的.消息从客户端传送到服务端会经过多个处理动作,在WCF编程模型中,这些动作是按层 ...

  9. WCF编程系列(六)以编程方式配置终结点

    WCF编程系列(六)以编程方式配置终结点   示例一中我们的宿主程序非常简单:只是简单的实例化了一个ServiceHost对象,然后调用open方法来启动服务.而关于终结点的配置我们都是通过配置文件来 ...

随机推荐

  1. ABP理论学习之工作单元(Unit of Work)

    返回总目录 本篇目录 公共连接和事务管理方法 ABP中的连接和事务管理 仓储类 应用服务 工作单元 工作单元详解 关闭工作单元 非事务的工作单元 工作单元方法调用其它 工作单元作用域 自动保存 IRe ...

  2. UI控件(UISegmentedControl)

    @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSArray* segmentArray = [[ ...

  3. Hadoop学习笔记—3.Hadoop RPC机制的使用

    一.RPC基础概念 1.1 RPC的基础概念 RPC,即Remote Procdure Call,中文名:远程过程调用: (1)它允许一台计算机程序远程调用另外一台计算机的子程序,而不用去关心底层的网 ...

  4. [.net 面向对象程序设计进阶] (21) 反射(Reflection)(下)设计模式中利用反射解耦

    [.net 面向对象程序设计进阶] (21) 反射(Reflection)(下)设计模式中利用反射解耦 本节导读:上篇文章简单介绍了.NET面向对象中一个重要的技术反射的基本应用,它可以让我们动态的调 ...

  5. 再看Ajax

    再回顾Ajax相关的内容,再次梳理学习还是很有必要的,尤其是实际的开发中,ajax更是必不可少,仔细学习以便避免不必要的错误. 文章导读: --1.使用XMLHttpRequest---------- ...

  6. android服务里生成通知点击后返回正在运行的程序和当前的Activity

    想在服务里生成一个通知,并且点击通知打开当前应用程序下单当前活动,折腾了半天,网上的那些都不靠谱,试了半天,最后把ActivityManager和反射都用进来了,终于解决了这个问题.这样在服务中想恢复 ...

  7. 分享一个css3写的气泡对话框,适合于即时通讯和留言本的动态内容

    效果预览: css code .message_content{width:100%;margin-top:10px;clear:both;float:left;} .face{float:left; ...

  8. 垃圾回收机制GC知识再总结兼谈如何用好GC

    一.为什么需要GC 应用程序对资源操作,通常简单分为以下几个步骤: 1.为对应的资源分配内存 2.初始化内存 3.使用资源 4.清理资源 5.释放内存 应用程序对资源(内存使用)管理的方式,常见的一般 ...

  9. OLE DB Command transformation 用法

    OLE DB Command transformation component 能够引用参数,逐行调用sqlcommand,This transformation is typically used ...

  10. android应用安全——(数据抓包)跟踪监控android数据包

    转载博客:http://blog.csdn.net/xyz_lmn/article/details/8808169 web开发中Chrome.IE.firefox等浏览器都自带提供了插件帮助开发者跟踪 ...