使用过WCF的童鞋们都很清楚,绑定是必须的。我将这些绑定总结了下。

一、标准绑定简要说明

1.basicHttpBinding

基于WS-I Basic Profile 1.1 的web服务,所需的.Net Framework版本为 3.0 以上。

2.wsHttpBinding

针对改进的web服务的绑定,包括WS-Security,WS-Transaction等元素,所需的.Net Framework版本为 3.0 以上。

3.wsDualHttpBinding

支持双工通信的HTTP绑定,所需的.Net Framework版本为 3.0 以上。

4.webHttpBinding

支持REST/POX服务的绑定,使用XML/JSON序列化,所需的.Net Framework版本为 3.0 以上。

5.netTCPBinding

使用TCP传输协议在跨主机的局域网内使用,支持可靠性、事务、安全等特性,并且该绑定被特别的优化来支持WCF系统。但是,使用该绑定需要确保通信双方都基于WCF构建,这里并不符合SOA的原则,所需的.Net Framework版本为 3.0 以上。

6.netNamedPipeBinding

支持和netTCPBinding大致相同的特性,但由于使用命名管道进行通信,所以通信不能跨越主机,所需的.Net Framework版本为 3.0 以上。

7.netMsmqBinding

使用微软消息队列(MSMQ)协议来进行异步脱机的消息交互,所需的.Net Framework版本为 3.0 以上。

8.netPeerTCPBinding

使用P2P协议在网格中进行消息交互,所需的.Net Framework版本为 3.0 以上。

9.msmqIntegrationBinding

该绑定可以用来在WCF消息和MSMQ消息中进行转换,所需的.Net Framework版本为 3.0 以上。

10.wsFederrationHttpBinding

该绑定支持使用了联合安全机制的web服务,所需的.Net Framework版本为 3.0 以上。

11.ws2007HttpBinding

该绑定继承自wsHttpBinding,其主要设计目的是为了支持2007年新定制的WS标准,所需的.Net Framework版本为 3.5以上。

12.ws2007FederationHttpBinding

该绑定继承自wsFederationHttpBinding,和ws2007HttpBinding一样。其设计目的是为了支持2007新定制的WS标准,所需的.Net Framework版本为 3.5以上。

二、如何选择绑定

如何选择绑定是编写WCF程序的一个比较重要的话题。绑定的选择包含了很多因素,包括消息传输的可靠性,传输模式是否跨进程、主机、网络,传输模式的支持、安全性、性能等多个方面。而从本质上来看,绑定具有的这些特性源于其使用的网络协议和编码器。

绑定名称   网络协议 编码器 可交互性
basicHttpBinding HTTP/HTTPS Text,MTOM 可交互
wsHttpBinding HTTP/HTTPS Text,MTOM 可交互
WSDualHttpBinding HTTP Text,MTOM 可交互
webHttpBinding HTTP/HTTPS XML,JSON 可交互
netTcpBinding TCP 二进制编码器 不可交互
netNamedPipeBinding IPC 二进制编码器 不可交互
NetMsmqBinding MSMQ 二进制编码器 不可交互
netPeerTCPBinding P2P 二进制编码器 不可交互
msmqIntergrationBinding MSMQ 二进制编码器 可交互
wsFederationHttpBinding HTTP/HTTPS Text,MTOM 可交互
ws2007HttpBinding HTTP/HTTPS Text,MTOM 可交互
ws2007FederationHttpBinding HTTP/HTTPS Text,MTOM 可交互

MTOM(Message Transmission Optimization Mechanism),是W3C的MTOM的消息传输优化机制,有效地发送的二进制数据和从Web服务方法。将消息传输优化机制
(MTOM) 消息编码与WSHttpBinding
一起使用。MTOM是一种机制,用来以原始字节形式传输包含SOAP消息的较大二进制附件,从而使所传输的消息较小。

所有net开头的都不支持交互

WCF的交互可以分为下列几种情况。

1.跨越主机进程交互

2.跨越应用程序域但在同一进程内交互。

3.在同一程序域内交互。

绑定更详细的特点总结在下一篇中...

OK  说完了,补充一点:

.NET技术交流群 199281001 .欢迎加入。

觉得本文对你有所帮助,就点右下角推荐吧,谢谢。

作者:gaobing
提示:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

最新文章

  1. ubuntu开启SSH服务
  2. Visual Studio 2015激活码,Visual Studio 2015密钥
  3. Fiddler+Jmeter+断言详细教程
  4. [SQL Server]Index/deadlock
  5. spring beans的写入工具——spring-beans-writer
  6. 虚拟机linux配置nginx 为什么win7通过Ip访问不到
  7. android 菜单事件处理
  8. 【KMP】剪花布条
  9. java编程中容易犯2的细节汇总
  10. LoadRunner编写Socket协议脚本方法
  11. leetcode 697. Degree of an Array
  12. c#简单操作MongoDB_2.4
  13. Vasya and Basketball CodeForces - 493C
  14. [TJOI 2016&HEOI 2016]排序
  15. tp5 修改默认的分页url
  16. 在jsp中如何使用javax.servlet.http.HttpServlet,javax.servlet.GenericServlet, javax.servlet.Servlet
  17. 从零开始学安全(五)●Vmware虚拟机三种网络模式详解
  18. TF之BN:BN算法对多层中的每层神经网络加快学习QuadraticFunction_InputData+Histogram+BN的Error_curve
  19. 包的作用域(public、private)
  20. 课程四(Convolutional Neural Networks),第三 周(Object detection) —— 2.Programming assignments:Car detection with YOLOv2

热门文章

  1. Html5实践之EventSource
  2. Linux命令学习
  3. 20145222黄亚奇《Java程序设计》第2周学习总结
  4. C#中无边框窗体移动
  5. WPF MVVM 写一个健壮的INotifyPropertyChanged基类
  6. CUDA编程学习(二)
  7. java并发:中断一个正在运行的线程
  8. C/C++指针内存分配小细节
  9. WCF 入门(23,24)
  10. (转载)Go语言开发环境配置