WCF中的标准绑定
使用过WCF的童鞋们都很清楚,绑定是必须的。我将这些绑定总结了下。
一、标准绑定简要说明
基于WS-I Basic Profile 1.1 的web服务,所需的.Net Framework版本为 3.0 以上。
针对改进的web服务的绑定,包括WS-Security,WS-Transaction等元素,所需的.Net Framework版本为 3.0 以上。
支持双工通信的HTTP绑定,所需的.Net Framework版本为 3.0 以上。
支持REST/POX服务的绑定,使用XML/JSON序列化,所需的.Net Framework版本为 3.0 以上。
使用TCP传输协议在跨主机的局域网内使用,支持可靠性、事务、安全等特性,并且该绑定被特别的优化来支持WCF系统。但是,使用该绑定需要确保通信双方都基于WCF构建,这里并不符合SOA的原则,所需的.Net Framework版本为 3.0 以上。
支持和netTCPBinding大致相同的特性,但由于使用命名管道进行通信,所以通信不能跨越主机,所需的.Net Framework版本为 3.0 以上。
使用微软消息队列(MSMQ)协议来进行异步脱机的消息交互,所需的.Net Framework版本为 3.0 以上。
使用P2P协议在网格中进行消息交互,所需的.Net Framework版本为 3.0 以上。
该绑定可以用来在WCF消息和MSMQ消息中进行转换,所需的.Net Framework版本为 3.0 以上。
该绑定支持使用了联合安全机制的web服务,所需的.Net Framework版本为 3.0 以上。
该绑定继承自wsHttpBinding,其主要设计目的是为了支持2007年新定制的WS标准,所需的.Net Framework版本为 3.5以上。
该绑定继承自wsFederationHttpBinding,和ws2007HttpBinding一样。其设计目的是为了支持2007新定制的WS标准,所需的.Net Framework版本为 3.5以上。
二、如何选择绑定
如何选择绑定是编写WCF程序的一个比较重要的话题。绑定的选择包含了很多因素,包括消息传输的可靠性,传输模式是否跨进程、主机、网络,传输模式的支持、安全性、性能等多个方面。而从本质上来看,绑定具有的这些特性源于其使用的网络协议和编码器。
绑定名称 | 网络协议 | 编码器 | 可交互性 |
basicHttpBinding | HTTP/HTTPS | Text,MTOM | 可交互 |
wsHttpBinding | HTTP/HTTPS | Text,MTOM | 可交互 |
WSDualHttpBinding | HTTP | Text,MTOM | 可交互 |
webHttpBinding | HTTP/HTTPS | XML,JSON | 可交互 |
netTcpBinding | TCP | 二进制编码器 | 不可交互 |
netNamedPipeBinding | IPC | 二进制编码器 | 不可交互 |
NetMsmqBinding | MSMQ | 二进制编码器 | 不可交互 |
netPeerTCPBinding | P2P | 二进制编码器 | 不可交互 |
msmqIntergrationBinding | MSMQ | 二进制编码器 | 可交互 |
wsFederationHttpBinding | HTTP/HTTPS | Text,MTOM | 可交互 |
ws2007HttpBinding | HTTP/HTTPS | Text,MTOM | 可交互 |
ws2007FederationHttpBinding | HTTP/HTTPS | Text,MTOM | 可交互 |
MTOM(Message Transmission Optimization Mechanism),是W3C的MTOM的消息传输优化机制,有效地发送的二进制数据和从Web服务方法。将消息传输优化机制
(MTOM) 消息编码与WSHttpBinding
一起使用。MTOM是一种机制,用来以原始字节形式传输包含SOAP消息的较大二进制附件,从而使所传输的消息较小。
所有net开头的都不支持交互
WCF的交互可以分为下列几种情况。
1.跨越主机进程交互
2.跨越应用程序域但在同一进程内交互。
3.在同一程序域内交互。
绑定更详细的特点总结在下一篇中...
OK 说完了,补充一点:
.NET技术交流群 199281001 .欢迎加入。
觉得本文对你有所帮助,就点右下角推荐吧,谢谢。