WCF 服务的ABC之绑定(六)
绑定 Binding
绑定是开发人员控制WCF程序与其他消息交互的主要手段。从功能上看,绑定创建了通道工厂惑通道侦听器的堆栈对象。绑定直接惑间接创建的对象是WCF实现各种消息功能(例如,传输、安全性、事务性)的主要方式。一个绑定封装了诸如传输协议、消息编码、通信模式、可靠性、安全性、事务传播,以及互操作性等相关选项,使得它们保持一致。
五种常用绑定
基本绑定
- 对应BasicHttpBinding类
- 基本绑定能够将WCF服务公开为传统的ASMX Web服务,使得原客户端能够与新的服务协作
TCP绑定
- 对于NetTcpBinding类
- TCP绑定使用TCP协议实现在Intranet中跨机器的通信,支持多种特性,包括可靠性、事务性、安全性,以及WCF之间通信的优化,前提是它要求客户端与服务都必须使用WCF
IPC绑定
- 对应NetNamePipeBingding类
- 他使用命名管道为同一机器通信进行传输
- 这种绑定最安全,因为它不是接受来自机器外的调用
- 它是性能最佳的绑定,因为IPC协议比TCP协议更加简单
Web服务(WS)绑定
- 对应于WSHttpBinding类
- WS绑定使用Http和Https进?行传输,为基于Intranet的通信提供多种特性(如可靠性、事务性和安全性),这些特性均遵循WS-*标准
- 该绑定用来与支持WS-*标准的系统进行互操作
MSMQ绑定
- 对应与NetMsmqBinding类
- 使用MSMQ进行传输,用于支持断开的队列调用
- ·WCF标准绑定
格式与编码
名称 |
传输协议 |
编码 |
互操作性 |
BasicHttpBinding |
HTTP/HTTPS |
Text |
+ |
NetTcpBinding |
TCP |
Binary |
- |
NetNamedPipeBinding |
IPC |
Binary |
- |
WSHttpBinding |
HTTP/HTTPS |
Text,MTOM |
+ |
NetMsmqBinding |
MSMQ |
Binary |
- |
- 文本编码通常允许WCF服务(或客户端)能够通过HTTP协议与其他服务(或客户端)通信,而不用考虑它所使用的技术及通信传输的范围
- 二进制编码格式通过TCP、IPC或MSMQ可以获得最佳的性能,但它是以牺牲或操作性为代价,只支持WCF到WCF的通信
几种常见的绑定类型
具体绑定规则根据具体需求而定。
Binding名称 |
Configuration Element |
描述 |
BasicHttpBinding |
basicHttpBinding |
一个指定用符合基本网络服务规范通讯的binding,它用http进行传输,数据格式为text/xml |
WSHttpBinding |
wsHttpBinding |
一个安全的通用的binding,但它不能在deplex中使用 |
WSDualHttpBinding |
wsDualHttpBinding |
一个安全的通用的binding,但能在deplex中使用 |
WSFederationHttpBinding |
wsFederationHttpBinding |
一个安全的通用的支持WSF的binding,能对用户进行验证和授权 |
NetTcpBinding |
netTcpBinding |
在wcf应用程序中最适合跨机器进行安全通讯的binding |
NetNamedPipeBinding |
netNamedPipeBinding |
在wcf应用程序中最适合本机进行安全通讯的binding |
NetMsmqBinding |
netMsmqBinding |
在wcf应用程序中最适合跨机器进行安全通讯的binding,并且支持排队 |
NetPeerTcpBinding |
netPeerTcpBinding |
一个支持安全的,多机交互的binding |
MsmqIntegrationBinding |
msmqIntegrationBinding |
一个用于wcf与现有msmq程序进行安全通讯的binding |