WCF常用绑定选择

一、五种常用绑定常用绑定的传输协议以及编码格式

名称 传输协议 编码格式 互操作性
BasicHttpBinding HTTP/HTTPS Text,MTOM Yes
NetTcpBinding TCP Binary No
NetNamedPipeBinding IPC Binary No
WSHttpBinding HTTP/HTTPS Text,MTOM Yes
NetMsmqBinding MSMQ Binary
No

1、基本绑定(BasicHttpBinding)

对应BasicHttpBinding类,能够将WCF服务公开为传统的ASMX Web服务,是以前就的程序能够使用现在的WCF服务。在实际开发中一个WCF服务可能会给不同的程序调用,如给Java的程序调用,给Flex的程序调用等,那么采用BasicHttpBinding最合适不过了

2、TCP绑定(NetTcpBinding)

对应与NetTcpBinding类,TCP绑定使用TCP协议在Intranet中跨机器的通信,注意这里是Intranet而非Internet。支持多种特性,包括可靠性、事务性、安全性、以及WCF之间通信的优化。前提是要求客户端与服务端都必须使用WCF

3、IPC绑定(NetNamedPipeBinding)

对应于NetNamedPipeBinding累,使用命名管道为同一机器通信进行传输,安全性最高,因为不能接收其它机器的外部调用。IPC协议绑定与TCP协议绑定相似,也是性能最好的绑定,因为IPC协议比TCP协议更简单

4、Web服务(WS)绑定(WSHttpBinding)

对应于WSHttpBinding类,WS绑定使用Http或Https进行传输。为基于Internet的通信提供了多种特性(可靠性、事务性、安全性),遵循WS-*标准。该绑定用来与支持WS-*标准的系统进行互操作

5、MSMQ绑定(NetMsmqBinding)

对应于NetMsmqBinding类,它使用MSMQ进行传输,用于支持断开的队列调用

注:二进制编码格式使用TCP、IPC、MSMQ可以获取最佳性能,但是它是以牺牲互操作性为代价,因为它只支持WCF到WCF的通信

二、选择绑定

首先考虑服务是否要与非WCF的客户端交互,如果需要,判断客户端期望调用基本Web协议(ASMX Web)就选BasicHttpBinding,否则就选WSHttpBinding,该绑定支持WS-*标准。

WCF到WCF的考虑是否需要脱机或断开状态下的交互,如果需要就选择NetMsmqBinding。此外在判断是否需要跨机器调用,如果需要就选择NetTcpBinding,否则就选择NetNamedPipeBinding

三、其他集中不是很常用的绑定

1、WS双向绑定

对应于WSDualHttpBinding类,与WS绑定几乎一样,不过它支持双向通信。由于没有支持回调的行业标准,所以不支持互操作性。在.NET服务总线以及NetTcpRelayBinding出现后,不再推荐使用

2、对等网络绑定

对应于NetPeerTcpBinding类,它使用对等网络来传输消息:使用对等网络与客户端可以订阅的相同网格,并且广播消息。设计网络拓扑与网络计算

3、联邦WS绑定

对应于WSFederationHttpBinding类,主要是支持联邦安全

4、联邦WS 2007绑定

对应于WS2007FederationHttpBinding类,为WSFederationHttpBinding的更新版本

5、MSMQ集成绑定

对应于MsmqIntegrationBinding类,支持消息队列的绑定,MSMQ集成绑定可以将WCF消息转化为MSMQ消息,它的设计目标就是为了与MSMQ客户端交互

6、WS 2007绑定

对应于WS2007HttpBinding类,继承与WSHttpBinding类,添加了对于事务、安全、可靠性规范的支持

转自:http://blog.csdn.net/dingxingmei/article/details/13772121

时间: 2024-11-08 20:25:54

WCF常用绑定选择的相关文章

WCF基础:绑定(三)

在WCF绑定体系中,绑定创建绑定元素,绑定元素创建绑定监听器/绑定工厂,绑定监听器/绑定工厂创建信道. WCF中绑定是有多个信道相连组成的信道栈,在这个信道栈中必须包含传输信道和编码信道,而且传输信道必须在栈底,在信道栈里面可以添加自定义的信道或是一些协议信道(WS-*标准),在这些协议信道中可以一些消息的处理,比如事务的流转,保证消息的安全传输等.在WCF的信道栈中每一个信道都对信道有这单一的处理功能,多个信道组成的信道栈就可以处理多种功能的消息; Binding public abstrac

WCF基础:绑定(一)

WCF中的终结点(ServiceEndpoint)包含有三要素:地址(EndpointAddress),绑定(Binding),契约描述(ContractDescription)三要素:其中绑定的在整个WCF体系架构中具有重要的作用,绑定决定了服务之间通信的模式以及消息中特殊处理: WCF体系中分为服务模型层和信道层,信道层就是通过绑定来进行创建的: 绑定(Binding) 在WCF中默认定义了许多种的绑定: 类型名 配置文件使用名 描述 BasicHttpBinding basicHttpBi

WCF之绑定

NameSpace+Name作为服务元数据的唯一标示.BindingElement描述Binding的特征. 绑定表示通信信道的配置,定义C/S间的协议. 分为:传输信道(TCP,HTTP-),消息编码(Text,Binary,MTOM),协议信道(安全,事务,可靠性消息). 绑定由绑定元素组成,不同的绑定元素有不同的作用,分别对信道的某一方面进行设置. 绑定一定依附于某一端点. 信道:信道在通信的每个端点间传发消息. 其中,客户端代理是根据客户端绑定配置而派生的信道. 服务宿主根据绑定的信息,

WCF基础:绑定(二)

在WCF的绑定体系中,经常会碰到ICommunicationObject接口,无论是IChannel接口还是IChannelListener/IChannelFactory接口都继承了ICommunicationObject接口;可见ICommunicationObject接口在Bing体系中作用很重要: ICommunicationObject ICommunicationObject接口是通信对象状态装换的接口: public interface ICommunicationObject {

WCF 服务编程 - 常用绑定

WCF  定义了5中常用的绑定. 一. 绑定 1.基本绑定: 对应于BasicHttpBinding类.基本绑定能够将WCF服务公开为传统的ASMX Web服务,使得原客户端能够与新的服务协作.如果客户端使用了基本绑定,那么新的WCF客户端就能够与原ASMX服务协作.基本绑定使得服务看起来像是一个传统的Web服务,能够基于基本的Web服务信息进行通信.当客户端使用绑定时,该绑定允许新的WCF客户端与原ASMX服务协作. 2.TCP绑定: 对应于NetTcpBinding类.TCP绑定使用TCP协

wcf常用的概念

常见的服务行为包括实例控制.并发控制.元数据发布等 在WCF中,有三种消息交换模式:数据报模式.请求-响应模式.双工模式. 在WCF中一共包含了4种契约,分别是服务契约.数据契约.错误契约和消息契约. 常用的寄宿方式包括自寄宿. IIS寄宿.Windows激活服务.Windows服务.Com+组件等. WCF的体系基本包含了4个方面,分别为契约.服务运行时.消息和寄宿 .Net Framework的四大体系包括:WCF.WF.WPF.WCS. Http(超文本传输协议):默认端口80Https(

WCF标准绑定

标准绑定 说明 协议 编码器 可交互性 BasicHttpBinding 在代码中,请使用 BasicHttpBinding 类:在配置中,请使用 <basicHttpBinding>. 此绑定的目的是与如下一系列现有技术一起使用: ASP.NET Web 服务 (ASMX) 版本 1. Web Service Enhancements (WSE) 应用程序. Web 服务互操作性 (WS-I) 规范中定义的基本配置文件(http://go.microsoft.com/fwlink/?Link

Java学习资料-Java常用算法-选择排序算法

ChooseSort源程序public class ChooseSort { private static void ChooseSort (int [] a){  for(int i = 0; i < a.length; i++){   //对数组循环,假设数据排在前面的元素总比后面的小,然后与后面的数据进行比较   int k = i;   for(int j = i+1; j <a.length; j++){//对数据遍历,寻找最小的数据元素的数组下标    if(a[j]<a[k

WCF wsDualHttpBinding 绑定

服务端配置文件: <?xml version="1.0" encoding="utf-8"?><configuration>  <configSections>    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />  </configSe