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 服务编程 - 常用绑定的更多相关文章

  1. WCF服务编程 读书笔记——第2章 服务契约

    操作重载诸如 C++ 和 C# 等编程语言都支持方法重载,即允许具有相同名称的两个方法可以定义不同的参数.例如,如下的 C# 接口就是有效的定义: interface ICalculator { in ...

  2. WCF服务编程 读书笔记——第1章 WCF基础(2)

    续:第1章 WCF基础(1) 元数据交换 服务有两种方案可以发布自己的元数据.一种是基于HTTP-GET协议提供元数据, 另一种则是后面将要讨论的使用专门的终结点的方式.WCF能够为服务自动提供基于H ...

  3. WCF服务编程 读书笔记——第1章 WCF基础(1)

    第1章 WCF基础 本章主要介绍WCF的基本概念.构建模块以及WCF体系架构,以指导读者构建一个简单的WCF服务.从本章的内容中,我们可以了解到WCF的基本术语,包括地址(Address).绑定(Bi ...

  4. WCF服务编程-基础

    WCF是微软建立新一代的分布式应用及面向服务应用的标准平台,是基于原有.NET Framework 2.0的扩展.虽然在WCF发布不久就已经在项目中使用WCF技术了.但是由于在项目中还没有较大规模的应 ...

  5. WCF服务编程

    WCF服务编程, 我是WCF的初学者,在这想分享学习WCF服务编程的过程,欢迎大家多多指教!

  6. WCF系列_WCF常用绑定选择

    一.五种常用绑定常用绑定的传输协议以及编码格式 名称 传输协议 编码格式 互操作性 BasicHttpBinding HTTP/HTTPS Text,MTOM Yes NetTcpBinding TC ...

  7. WCF服务编程中使用SvcMap实现类型共享等技巧【转】

    原文链接:http://www.cr173.com/html/19026_1.html 国外的一篇文章:Sharing DataContracts between WCF Services 文中提到的 ...

  8. wcf服务编程(第3版)文摘

    第1章 wcf基础 什么是wcf: System.ServiceModel.dll 服务 服务的执行边界: proxy 地址:http/https,tcp,ipc,peer newwork,msmq, ...

  9. WCF服务编程——数据契约快速入门

    WCF序列化流程 序列化 默认用户自定义类型(类和结构)并不支持序列化,因为.NET无法判断对象状态是否需要反射到流. 用户自定义类的实例支持序列化 需要添加[Serialazable].若要允许可序 ...

随机推荐

  1. [原创]下拉框控件react-native-modal-dropdown更新历程

    前言 不知不觉从今年9月发布第一版控件到现在已经快3个月了 过去不断从开源社区索取,一直一直想着有机会一定要回报

  2. 安卓Android科大讯飞语音识别代码使用详解

    科大讯飞的语音识别功能用在安卓代码中,我把语音识别写成了Service,然后在Fragment直接调用service服务.科大讯飞语音识别用的是带对话框的那个,直接调用科大讯飞的语音接口,代码采用链表 ...

  3. Linux 关于Transparent Hugepages的介绍

    透明大页介绍 Transparent Huge Pages的一些官方介绍资料: Transparent Huge Pages (THP) are enabled by default in RHEL ...

  4. 最实用的IT类网站及工具大集合

    1.聚合数据 大家在开发过程中,可能会用到各种各样的数据,想找一些接口来提供一些数据.比如天气预报查询,火车时刻表查询,彩票查询,身份证查询等等.有了这个接口,直接调用即可.各种各样的API接口满足你 ...

  5. webgl动画小测试

    // MultiPoint.js (c) 2012 matsuda // Vertex shader program var VSHADER_SOURCE = 'attribute vec4 a_Po ...

  6. [LeetCode] Regular Expression Matching 正则表达式匹配

    Implement regular expression matching with support for '.' and '*'. '.' Matches any single character ...

  7. 励志经典,持续收集ing....

    士兵突击励志经典:http://blog.sina.com.cn/s/blog_660538e10100r7ld.html 励志散文1:http://www.vipyl.com/Article/328 ...

  8. C#定义类型转化 及 格式化字符串

    operator 关键字 operator 关键字用来重载内置运算符,或提供类/结构声明中的用户定义转换.它可以定义不同类型之间采用何种转化方式和转化的结果. operator用于定义类型转化时可采用 ...

  9. oracle Entity db.Database.SqlQuery ORA-01843: 无效的月份

    原因是oracle的日期格式化格式和本地语言环境的日期格式不一致导致的. 一般情景为oralce格式为英文格式 本地服务器或者开发机的环境为中文环境. 使用Dbcontext 实例一般不会有问题. 但 ...

  10. 北京培训记day4

    智商题QAQ-- T1:求>=n的最小素数,n<=10^18 暴力枚举n-n+100,miller-rabin筛法 T2:给定一个01矩阵,每次选择一个1并将(x,y)到(1,1)颜色反转 ...