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].若要允许可序 ...
随机推荐
- JavaScript 解析 Django Python 生成的 datetime 数据 时区问题解决
JavaScript 解析 Django/Python 生成的 datetime 数据 当Web后台使用Django时,后台生成的时间数据类型就是Python类型的. 项目需要将几个时间存储到数据库中 ...
- Duplicate entry 'javajavajav' for key 'username'
org.apache.ibatis.exceptions.PersistenceException: ### Error updating database. Cause: com.mysql.jd ...
- 前端之float的几种清除浮动方式
前端之float的几种清除浮动方式 本节内容 1.float清除方式1 2.float清除方式2 3.float清除方式3 4.float清除方式4 1.float清除方式1 <!DOCTYPE ...
- codevs 1245 最小的N个和
1245 最小的N个和 http://codevs.cn/problem/1245/ 题目描述 Description 有两个长度为 N 的序列 A 和 B,在 A 和 B 中各任取一个数可以得到 N ...
- [LeetCode] Word Break 拆分词句
Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separa ...
- Android开发之Activity横竖屏切换生命周期重建问题
当进行横竖屏切换的时候Activity的生命周期会重建,从而导致Activity崩溃等问题,为了避免这一问题,需要在AndroidManifest.xml文件中设置: <activity and ...
- sql查询慢优化
SELECT g.goods_id, g.type_id, g.user_id, g.productname, g.img, g.intro, g.attr, u.companyname, u.enl ...
- Python版设计模式: 创建型模式:单例模式和工厂模式家族
一. 单例模式(Singleton) 所谓单例模式,也就是说不管什么时候都要确保只有一个对象实例存在.很多情况下,整个系统中只需要存在一个对象,所有的信息都从这个对象获取,比如系统的配置对象,或者是线 ...
- MySQL/MariaDB/PerconaDB-提权条件竞争漏洞
背景 2016年11月01日,国外安全研究员Dawid Golunski在 MySQl, MariaDB 和 PerconaDB 数据库中发现条件竞争漏洞,该漏洞允许本地用户使用低权限(CREATE/ ...
- 【BZOJ-2653】middle 可持久化线段树 + 二分
2653: middle Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1298 Solved: 734[Submit][Status][Discu ...