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. 教程三:Wechat库的使用

    上一篇教程中我们提供了wechat的php的库,这里我们简要介绍一个这个库的源码和使用.这个库的主文件为`Wechat.php`,其余的几个文件都是为这个文件服务的,提供加解密,消息拼接等功能.`We ...

  2. [LeetCode] Convert a Number to Hexadecimal 数字转为十六进制

    Given an integer, write an algorithm to convert it to hexadecimal. For negative integer, two’s compl ...

  3. [LeetCode] Shortest Distance from All Buildings 建筑物的最短距离

    You want to build a house on an empty land which reaches all buildings in the shortest amount of dis ...

  4. [LeetCode] Find Median from Data Stream 找出数据流的中位数

    Median is the middle value in an ordered integer list. If the size of the list is even, there is no ...

  5. 【C#】析构函数

    MSDN paper 析构函数 析构函数(destructor) 与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数. 析构函数往往用来做“清理善后” 的工作( ...

  6. Dao跨事务调用实现转账功能

    1.首先在数据库当中创建数据库,并且创建它的 实现类 package com.beiwo.epet.entity; public class Account { private int id; pri ...

  7. sql语句-备忘

    -- 清空全部数据,不写日志,不可恢复,速度极快truncate table 表名; -- 清空全部数据,写日志,数据可恢复,速度慢delete from 表名;   --从一个数据库复制一张表带另一 ...

  8. 【BZOJ 3993】【SDOI 2015】星际战争

    http://www.lydsy.com/JudgeOnline/problem.php?id=3993 调了好长时间啊 这道题设时间为time,那么对于m个武器从S向这m个点连容量为time*Bi的 ...

  9. DBoW2库介绍

    DBoW2库是University of Zaragoza里的Lopez等人开发的开源软件库. 由于在SLAM回环检测上的优异表现(特别是ORB-SLAM2),DBoW2库受到了广大SLAM爱好者的关 ...

  10. Android Studio JNI 开发简单案例

    转载:http://www.androidchina.net/5744.html 进程保活,热修复,硬件接入等等都需要底层的支持,而底层代码是 C .C++ 写的,那么在 Android 中怎么调用底 ...