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

博客园大道至简

http://www.cnblogs.com/jams742003/

转载请注明:博客园

时间: 2024-11-03 21:29:01

WCF—Binding的相关文章

WCF Binding

<Programming WCF Services>有一幅图也能说明各自的特征: 下面的图给出了我们选择Binding的方式

WCF binding的那些事!!!

原文地址:http://www.cnblogs.com/Anima0My/archive/2008/04/16/1156146.html WCF中常用的binding方式: BasicHttpBinding: 用于把 WCF 服务当作 ASMX Web 服务.用于兼容旧的Web ASMX 服务. WSHttpBinding: 比 BasicHttpBinding 更加安全,通常用于 non-duplex 服务通讯. WSDualHttpBinding: 和 WSHttpBinding 相比,它支

WCF服务在高并发情况下报目标积极拒绝的异常处理 z

http://www.cnblogs.com/kklldog/p/5037006.html wcf的监控服务,偶尔监控到目标服务会报一个目标积极拒绝的错误.一开始以为服务停止了,上服务器检查目标服务好好的活着.于是开始查原因. 一般来说目标积极拒绝(TCP 10061)的异常主要是2种可能: 1:服务器关机或者服务关闭 2:Client调用的端口错误或者服务器防火墙没开相应的端口 但是我们的服务本身是可以调用的,只是偶尔报这个错误,说明并不是这2个问题造成的.继续google,在stackove

WCF传输1-你是否使用过压缩或Json序列化?

1.当遇到需要传输大量数据时,怎么样传输数据? 2.压缩数据有哪几种常见的方式? 问题1解答:通过压缩来传输数据 问题2解答: (1)WCF自带的压缩方式 (2)自定义WCF binding进行压缩 (3)将对象序列化为JSON格式 今天来探讨一下WCF自带的压缩方式Gzip和Json序列化 我的其他WCF文章: WCF安全1-开篇 WCF安全2-非对称加密 WCF安全3-Transport与Message安全模式 WCF传输1-你是否使用过压缩或Json序列化? 先上图: 1.WCF自带的压缩

wcf 同时支持webhttp 和 引用方式

wcf 实现参考 http://www.cnblogs.com/mingmingruyuedlut/p/4223116.html 兼容两种方式 1.修改服务端webconfig <system.serviceModel> <services> <service name="xxx" behaviorConfiguration="Default"> <endpoint address="" behavior

NET下RabbitMQ实践[WCF发布篇]

在之前的两篇文章中,主要介绍了RabbitMQ环境配置,简单示例的编写.今天将会介绍如何使用WCF将RabbitMQ列队以服务的方式进行发布.          注:因为RabbitMQ的官方.net客户端中包括了WCF的SAMPLE代码演示,很适合初学者,所以我就偷了个懒,直接对照它的SAMPLE来说明了,算是借花献佛吧,呵呵. 首先我们下载相应源码(基于.NET 3.0),本文主要对该源码包中的代码进行讲解,链接如下:        Binary, compiled for .NET 3.0

(转)简易WCF负载均衡方案

最近跟高老师讨论nginx跟tomcat集群做负载均衡方案.感觉很有意思.想到自己项目中服务用的WCF技术,于是就想WCF如何做负载均衡,Google了一会,发现wcf4.0的路由服务好像可以实现.不过在研究路由服务期间,我有了个自己的方案,哈哈. 我要在客户端跟WCF服务中间部署一台WCF平衡服务器,用来分发请求,模拟nginx的工作. WCF平衡服务器我同样用WCF来实现,所有服务接口全部通过平衡服务区暴露给客户端.对于客户端来说,只要跟正常调用服务一样,添加平衡器的远程服务引用. 实现:

关于WCF服务在高并发情况下报目标积极拒绝的异常处理

最近弄了个wcf的监控服务,偶尔监控到目标服务会报一个目标积极拒绝的错误.一开始以为服务停止了,上服务器检查目标服务好好的活着.于是开始查原因. 一般来说目标积极拒绝(TCP 10061)的异常主要是2种可能: 1:服务器关机或者服务关闭 2:Client调用的端口错误或者服务器防火墙没开相应的端口 但是我们的服务本身是可以调用的,只是偶尔报这个错误,说明并不是这2个问题造成的.继续google,在stackoverflow上看到这样一篇:传送门 1 2 3 4 5 6 7 8 9 10 11

WCF学习系列一【WCF Interview Questions-Part 1 翻译系列】

http://www.topwcftutorials.net/2012/08/wcf-faqs-part1.html WCF Interview Questions – Part 1 This WCF Tutorial is a collection of most frequently asked interview questions about Windows Communication Foundation (WCF) covering the beginner to professio