WCF—Binding
原文地址:http://www.cnblogs.com/jams742003/archive/2010/01/13/1646379.html
Binding描述了哪些层面的信息
一个Binding包含着丰富的信息,每种信息都描述了服务端和客户端交互过程中的一方面,如下表所示,Binding描述了这些层面的信息:
| 层次 | 备注说明 | 
| Transactions(事务) | TransactionFlowBindingElement,用于指定事务流程 | 
| Reliability(信赖) | ReliableSessionBindingElement,用于指定对会话方式 | 
| Security(安全) | SecurityBindingElement,指定安全方式 | 
| Encoding(编码) | Text, Binary, MTOM, Custom,指定数据传输格式 | 
| Transport(传输) | TCP, Named Pipes, HTTP, HTTPS, MSMQ, Custom,指定传输方式 | 
选择正确的Binding
Binding是可以自定义实现的,可WCF框架已经为我们实现了足够多的Binding,供我们来选择,
如下表所示:
| Binding名称 | Configuration Element | 描述 | 
| BasicHttpBinding | basicHttpBinding | 一个指定用符合基本网络服务规范通讯的binding,它用http进行传输,数据格式为text/xml | 
| WSHttpBinding | wsHttpBinding | 一个安全的通用的binding,但它不能在deplex中使用 | 
| WSDualHttpBinding | wsDualHttpBinding | 一个安全的通用的binding,但能在deplex中使用 | 
| WSFederationHttpBinding | wsFederationHttpBinding | 一个安全的通用的支持WSF的binding,能对用户进行验证和授权 | 
| NetTcpBinding | netTcpBinding | 在wcf应用程序中最适合跨机器进行安全通讯的binding | 
| NetNamedPipeBinding | netNamedPipeBinding | 在wcf应用程序中最适合本机进行安全通讯的binding | 
| NetMsmqBinding | netMsmqBinding | 在wcf应用程序中最适合跨机器进行安全通讯的binding,并且支持排队 | 
| NetPeerTcpBinding | netPeerTcpBinding | 一个支持安全的,多机交互的binding | 
| MsmqIntegrationBinding | msmqIntegrationBinding | 一个用于wcf与现有msmq程序进行安全通讯的binding | 
下面的表格分别删除了上表中的Binding在互操作性(Interoperability), 安全性(Security), 是否支持会话(Session), 是否支持事务(Transactions)和是否为全双工(Duplex)上不同。
| Bingding | Interoperability | Security | Session | Transactions | Duplex | 
| BasicHttpBinding | Basic Profile 1.1 | (None), Transport, Message | None, (None) | None | n/a | 
| WSHttpBinding | WS | Transport, (Message), Mixed | (None), Transport, Reliable Session | (None), Yes | n/a | 
| WSDualHttpBinding | WS | (Message) | (Reliable Session) | (None), Yes | Yes | 
| WSFederationHttpBinding | WS-Federation | (Message) | (None), Reliable Session | (None), Yes | No | 
| NetTcpBinding | .NET | (Transport), Message | Reliable Session, (Transport) | (None), Yes | Yes | 
| NetNamedPipeBinding | .NET | (Transport) | None, (Transport) | (None), Yes | Yes | 
| NetMsmqBinding | .NET | Message, (Transport), Both | (None) | (None), Yes | No | 
| NetPeerTcpBinding | Peer | (Transport) | (None) | (None) | Yes | 
| MsmqIntegrationBinding | MSMQ | (Transport) | (None) | (None), Yes | n/a | 
·BasicHttpBinding: 最简单的绑定类型,通常用于 Web Services。使用 HTTP 协议,Text/XML 编码方式。
·WSHttpBinding: 比 BasicHttpBinding 更加安全,通常用于 non-duplex 服务通讯。
·WSDualHttpBinding: 和 WSHttpBinding 相比,它支持 duplex 类型的服务。
·WSFederationHttpBinding: 支持 WS-Federation 安全通讯协议。
·NetTcpBinding: 效率最高,安全的跨机器通讯方式。
·NetNamedPipeBinding: 安全、可靠、高效的单机服务通讯方式。
·NetMsmqBinding: 使用消息队列在不同机器间进行通讯。
·NetPeerTcpBinding: 使用 P2P 协议在多机器间通讯。
·MsmqIntegrationBinding: 使用现有的消息队列系统进行跨机器通讯。如 MSMQ。
仅作参考。
片段摘自:
http://www.rainsts.net/article.asp?id=439
http://www.cnblogs.com/jillzhang/archive/2008/02/03/1063406.html
WCF—Binding的更多相关文章
- Adapter as a WCF Binding - In Depth
		WCF LOB Adapter SDK surfaces an adapter as a custom WCF Binding. A WCF Bindingcorresponds to the “H ... 
- WCF Binding
		<Programming WCF Services>有一幅图也能说明各自的特征: 下面的图给出了我们选择Binding的方式 
- WCF binding的那些事!!!
		原文地址:http://www.cnblogs.com/Anima0My/archive/2008/04/16/1156146.html WCF中常用的binding方式: BasicHttpBind ... 
- WCF学习系列一【WCF Interview Questions-Part 1 翻译系列】
		http://www.topwcftutorials.net/2012/08/wcf-faqs-part1.html WCF Interview Questions – Part 1 This WCF ... 
- WCF学习系列三--【WCF Interview Questions – Part 3  翻译系列】
		http://www.topwcftutorials.net/2012/10/wcf-faqs-part3.html WCF Interview Questions – Part 3 This WCF ... 
- wcf  同时支持webhttp 和 引用方式
		wcf 实现参考 http://www.cnblogs.com/mingmingruyuedlut/p/4223116.html 兼容两种方式 1.修改服务端webconfig <system. ... 
- WCF传输1-你是否使用过压缩或Json序列化?
		1.当遇到需要传输大量数据时,怎么样传输数据? 2.压缩数据有哪几种常见的方式? 问题1解答:通过压缩来传输数据 问题2解答: (1)WCF自带的压缩方式 (2)自定义WCF binding进行压缩 ... 
- 关于WCF服务在高并发情况下报目标积极拒绝的异常处理
		最近弄了个wcf的监控服务,偶尔监控到目标服务会报一个目标积极拒绝的错误.一开始以为服务停止了,上服务器检查目标服务好好的活着.于是开始查原因. 一般来说目标积极拒绝(TCP 10061)的异常主要是 ... 
- WCF服务在高并发情况下报目标积极拒绝的异常处理 z
		http://www.cnblogs.com/kklldog/p/5037006.html wcf的监控服务,偶尔监控到目标服务会报一个目标积极拒绝的错误.一开始以为服务停止了,上服务器检查目标服务好 ... 
随机推荐
- 【原创】不用封装jar包 直接引入工程使用的方法(类似android的 is Library功能)
			1.制作lib工程,这里我简单制作一个测试类 2.eclipse中 java Project工程引入方法 2.1.新建个java工程,在属性配置中选择 "Java Build Path&qu ... 
- 强制关闭myeclipse出现的问题
			重启时,可能会出现打不开关闭前所在的workspace.其他workspace可以正常打开. 今天遇到这个问题,以前就遇到过,但是忘记如何解决了.今天在我等了十多分钟后,神奇的myeclipse自己起 ... 
- 【转】 KVC/KVO原理详解及编程指南
			原文地址:http://blog.csdn.net/wzzvictory/article/details/9674431 前言: 1.本文基本不讲KVC/KVO的用法,只结合网上的资料说说对这种技术的 ... 
- 把cygwin加入右键菜单
			第一步:修改windows注册表 1·开始->运行(或者win键+R),输入REGEDIT,回车,打开注册表编辑器: 2·找到HKEY_CLASSES_ROOT\Directory\Backgr ... 
- NSCondition的用法,NSCondication实现线程同步,生产者消费问题实现(转载)
			NSCondition的用法 使用NSCondition,实现多线程的同步,即,可实现生产者消费者问题. 基本思路是,首先要创建公用的NSCondition实例.然后: 消费者取得锁,取产品,如果没有 ... 
- [转]Delphi调用cmd的两种方法
			delphi调用cmd的两种方法vars:string;begins:='cmd.exe /c '+edit1.Text+' >c:\1.txt';winexec(pchar(s),sw_hid ... 
- SGU 133.Border
			水题不说了 #include <iostream> #include <cstring> #include <cstdio> #include <cmath& ... 
- 获取Enum的扩张方法。
			public static class EnumExtention { /// <summary> /// 获取枚举的描述信息 /// </summary> /// <t ... 
- mysql更新密码为空
			1.进入命令行 mysql -u root -p 'oldpassword'; 2 修改root用户的密码:mysql> update mysql.user set password=PASSW ... 
- 滚动条响应鼠标滑轮事件实现上下滚动的js代码
			<script type="text/javascript"> var scrollFunc=function(e){ e=e || window.event; if( ... 
