• 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

  • 相关阅读:
    测试文件报告
    Bug Variations
    阶段一 问答题2
    阶段一 问答题1
    HeapSort
    Git系列 (01):git clone 速度太慢解决方法
    ES6系列 (03):链判断运算符和Null 判断运算符
    ES6系列 (02):解构赋值
    ES6系列 (01):箭头函数this指向问题
    我忘却了所有,抛却了信仰,舍弃了轮回,只为,那曾在佛前哭泣的玫瑰,早已失去旧日的光泽。
  • 原文地址:https://www.cnblogs.com/yf2011/p/5390748.html
Copyright © 2020-2023  润新知