- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Binding详解
本文的出发点:
通过阅读本文,您能了解以下知识:
WCF中的Binding是什么?
Binding的组成?
Binding Element 的分类?
Binding描述了那些层面的信息?
选择正确的Binding
本文适合的读者:
本文适合WCF的初学者
WCF中的Binding是什么?
在弄清Binding是什么之前,我们先看一下WCF的中的Endpoint结构,一个Endpoint就类似于xml web service中的一个asmx文件,它包括三个组成部分1)Address 2) Binding 3) Contract,此三者被称为组成Endpoint的ABC,下图阐述了Endpoint的组成结构:
ABC分别解决了Endpoint的如下问题:
A解决了Endpoint在哪的问题,也就是Where is the endpoint?
B 解决的是如何与Endpoint通讯的问题,也就是How to communicate with endpoint?
C解决了Endpoint提供什么功能的问题,也就是What functionalities do the endpoint provide?
上面的两篇文章WCF从理论到实践三:八号当铺之黑色契约和WCF从理论到实践四:路在何方分别阐述了Contract和Address,本文着重讨论Binding, Binding实现的是在客户端和服务端进行通讯的底层细节,包括数据如何传输(比如采用Tcp,Http等),如何解决安全问题(SSL,Message Level Security等),传输的消息的格式(如text/xml,MTOM,binary等)。
Binding的组成?
Binding包括三个组成部分:NameSpace,Name和BindingElement,如下图所示:
Name和NameSpace是服务元数据(meta date)的唯一标志,换句话说,二者就像Binding的姓名一样,而BindingElement则描述Binding的特征,我们说Binding能解决通讯方式的问题,关键是靠BindingElement来进行描述。
Binding Element 的分类
Binding Element中最核心的组成部分,它分为以下三种类型
Encoding Binding Element:它用于描述传输数据的编码方式,比如用text/xml进行编码,用binary编码,用MTOM进行编码都是在这个上面定义,每个Binding Element必须包含一个Encoding Binding Element。
Transport Binding Element:它用于描述数据的传输方式,例如使用tcp进行传输,还是用http进行传输,还是用msmq,这些都是由Transport Binding Element来定
义,每一个Binding Element 必须包含一个Transport Binding Element
Protocol Binding Element: 指定诸如安全性、可靠性、上下文流设置(context flow settins)
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 wsDualH
文档评论(0)