WCF 服务编程 - 常用绑定
WCF 定义了5中常用的绑定。
一. 绑定
1.基本绑定:
对应于BasicHttpBinding类。基本绑定能够将WCF服务公开为传统的ASMX Web服务,使得原客户端能够与新的服务协作。如果客户端使用了基本绑定,那么新的WCF客户端就能够与原ASMX服务协作。基本绑定使得服务看起来像是一个传统的Web服务,能够基于基本的Web服务信息进行通信。当客户端使用绑定时,该绑定允许新的WCF客户端与原ASMX服务协作。
2.TCP绑定:
对应于NetTcpBinding类。TCP绑定使用TCP协议实现在Intranet中跨机器的通信,支持多种特性,包括可靠性、事务性、安全性,以及WCF之间通信的优化。前提是要求客户端与服务端都必须使用WCF。
3.IPC绑定:
对应于NetNamedPipeBinding类。它使用命名管道为同一机器通信进行传输。这种绑定方式最安全,因为它不能接受来自机器外部的调用。IPC绑定支持的特性与TCP绑定支持的特性相似,它同时也是性能最佳的绑定,因为IPC协议比TCP协议更加的简单。
4.Web服务(WS)绑定:
对应于WSHttpBinding类。WS绑定使用HTTP或HTTPS进行传输,为基于Internet的通信提供多种特性,如可靠性、事务性、安全性,这些特性均遵循WS-*标准。
该绑定用来与自持WS-*标准的系统进行交互操作。
5.MSMQ绑定:
对应于NetMsmqBinding类。它使用MSMQ进行传输,用于支持断开的队列调用。
二. 格式和编码
每种标准绑定使用的传输协议与编码格式都不相同,每种绑定都可以使用一种或者多种编码,默认的编码格式如下:
| Name | Transmission Protocol | Encoding Type | Interoperability |
| BasicHttpBinding | HTTP/HTTPS | Text,MTOM | Yes |
| NetTcpBinding | TCP | Binary | No |
| NetNamedPipeBinding | IPC | Binary | No |
| WSHttpBinding | HTTP/HTTPS | Text, MTOM | Yes |
| NetMsmqBinding | MSMQ | Binary | No |
文本编码格式通常允许WCF服务(客户端)能够通过HTTP协议与其他服务(客户端)通信,而不用考虑它所使用的技术以及通信传输的范围。二进制编码格式通过TCP、IPC或MSMQ可以获得最佳的性能,但它是以牺牲互操作性为代价的,因为它只支持WCF到WCF的通信,即TCP、IPC和MSMQ绑定通常不要求有互操作性。
三. 选择绑定

WCF 服务编程 - 常用绑定的更多相关文章
- WCF服务编程 读书笔记——第2章 服务契约
操作重载诸如 C++ 和 C# 等编程语言都支持方法重载,即允许具有相同名称的两个方法可以定义不同的参数.例如,如下的 C# 接口就是有效的定义: interface ICalculator { in ...
- WCF服务编程 读书笔记——第1章 WCF基础(2)
续:第1章 WCF基础(1) 元数据交换 服务有两种方案可以发布自己的元数据.一种是基于HTTP-GET协议提供元数据, 另一种则是后面将要讨论的使用专门的终结点的方式.WCF能够为服务自动提供基于H ...
- WCF服务编程 读书笔记——第1章 WCF基础(1)
第1章 WCF基础 本章主要介绍WCF的基本概念.构建模块以及WCF体系架构,以指导读者构建一个简单的WCF服务.从本章的内容中,我们可以了解到WCF的基本术语,包括地址(Address).绑定(Bi ...
- WCF服务编程-基础
WCF是微软建立新一代的分布式应用及面向服务应用的标准平台,是基于原有.NET Framework 2.0的扩展.虽然在WCF发布不久就已经在项目中使用WCF技术了.但是由于在项目中还没有较大规模的应 ...
- WCF服务编程
WCF服务编程, 我是WCF的初学者,在这想分享学习WCF服务编程的过程,欢迎大家多多指教!
- WCF系列_WCF常用绑定选择
一.五种常用绑定常用绑定的传输协议以及编码格式 名称 传输协议 编码格式 互操作性 BasicHttpBinding HTTP/HTTPS Text,MTOM Yes NetTcpBinding TC ...
- WCF服务编程中使用SvcMap实现类型共享等技巧【转】
原文链接:http://www.cr173.com/html/19026_1.html 国外的一篇文章:Sharing DataContracts between WCF Services 文中提到的 ...
- wcf服务编程(第3版)文摘
第1章 wcf基础 什么是wcf: System.ServiceModel.dll 服务 服务的执行边界: proxy 地址:http/https,tcp,ipc,peer newwork,msmq, ...
- WCF服务编程——数据契约快速入门
WCF序列化流程 序列化 默认用户自定义类型(类和结构)并不支持序列化,因为.NET无法判断对象状态是否需要反射到流. 用户自定义类的实例支持序列化 需要添加[Serialazable].若要允许可序 ...
随机推荐
- list<T> 的使用方法。
首先讲一个经常用到的Contains( )方法,用来测试一个元素是否在List内.这个功能跟SQL里面的" like % %"类似. 这个方法在数组中也存在,因为集合其实就是动态数 ...
- Heartbeat使用梳理
在日常的集群系统架构中,一般用到Heartbeat的主要就2种:1)高可用(High Availability)HA集群, 使用Heartbeat实现,也称为"双机热备", &qu ...
- chrome快捷键
常用的为: Ctrl + ] 下一个面板 Ctrl + [ 上一个面板 Ctrl + Alt + [ 去上一个历史记录的面板Ctrl + Alt + ] 去下一个历史记录的面板 Ct ...
- Linux下Source Insight的安装和汉化
原创文章,转载请注明出处. 工欲善其事,必先利其器.Source Insight绝对是阅读C和C++代码的利器,另外,Source Insight的体量很小,安装便捷,显示直观,比vim+cscope ...
- redis3.0常用命令
1.服务器启动 1)快捷启动 $redis-server 2)指定配置文件启动 $redis-server redis.conf 2.客服端启动 1)快捷无密码启动 $redis-cli 2)有密码和 ...
- python sokct 包详解
1. getaddrinfo简介getaddrinfo可解析得到IPv6地址,而gethostbyname仅能得到IPv4地址.getaddrinfo在Python的socket包中,以下为pytho ...
- Maven打包含有Main方法jar并运行
最近使用Kettle做定时数据抽取,因为Job更新或需求变更,修改Bug等种种原因,需要对重跑Job一般是针对每天的数据重跑一次.刚开始的做法是直接在自己的开发机器上重跑,这样速度比较慢,因为这时候你 ...
- font-size 兼容问题
早年~ 楔子 在为“我的抵扣券”添加 按钮时,为了将文字隐掉,给节点设置了“font-size:0;”,设置后刷一下浏览器,webkit下按钮掉下去了,而其他浏览器(包括IE6/7)都正常: 按理说 ...
- 【MySQL】花10分钟阅读下MySQL数据库优化总结
1.花10分钟阅读下MySQL数据库优化总结http://www.kuqin.com2.扩展阅读:数据库三范式http://www.cnblogs.com3.my.ini--->C:\Progr ...
- Android公共技术收集
UML类图详解 详解Android主流框架不可或缺的基石(ClassLoader,泛型,反射,注解) 公共技术点之 Java注解Annotation 公共技术点之 Java反射Reflection ...