WCF 定义了5中经常使用的绑定。安全
一. 绑定性能
1.基本绑定:优化
对应于BasicHttpBinding类。基本绑定可以将WCF服务公开为传统的ASMX Web服务,使得原客户端可以与新的服务协做。若是客户端使用了基本绑定,那么新的WCF客户端就可以与原ASMX服务协做。基本绑定使得服务看起来像是一个传统的Web服务,可以基于基本的Web服务信息进行通讯。当客户端使用绑定时,该绑定容许新的WCF客户端与原ASMX服务协做。编码
2.TCP绑定:spa
对应于NetTcpBinding类。TCP绑定使用TCP协议实如今Intranet中跨机器的通讯,支持多种特性,包括可靠性、事务性、安全性,以及WCF之间通讯的优化。前提是要求客户端与服务端都必须使用WCF。blog
3.IPC绑定:队列
对应于NetNamedPipeBinding类。它使用命名管道为同一机器通讯进行传输。这种绑定方式最安全,由于它不能接受来自机器外部的调用。IPC绑定支持的特性与TCP绑定支持的特性类似,它同时也是性能最佳的绑定,由于IPC协议比TCP协议更加的简单。事务
4.Web服务(WS)绑定:ip
对应于WSHttpBinding类。WS绑定使用HTTP或HTTPS进行传输,为基于Internet的通讯提供多种特性,如可靠性、事务性、安全性,这些特性均遵循WS-*标准。ci
该绑定用来与自持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绑定一般不要求有互操做性。
三. 选择绑定