(二)WCF的Binding模型

   上篇博客对WCF中的基础知识进行了介绍,先从概念上知道了WCF的一些理论,在abc模型中B是Binding,WCF为我们提供了多种绑定机制,我们先从了解各种绑定机制开始,只有知道之后才能在实践中更好的利用。


【采用Binding原因】


    由于服务之间的通信方式多种多样,就有多种可能的通信模式。包括:同步的请求/应答消息,或者异步的“即发即弃”消息;双向消息等。传递消息的传输协议包括:HTTP、TCP、P2P、IPC以及MSMQ。消息编码格式包括:纯文本编码格式、二进制编码格式、MTOM编码格式。消息安全保障也有多种策略,包括:不实施任何安全策略,只提供传输层的安全策略、消息层的隐私保护和安全策略。WCF还提供了多种对客户端认证与授权的安全策略。

    正是由于通信模式和交互方式之间组合数量之大,而且彼此之间可能会排斥或存在约束,管理起来非常复杂。为了简化这些选项,使他们易于管理,WCF引入了Binding技术将这些通信特征组合在一起。这样既方便了用户的使用,同时也使得WCF得到了推广,真是两全其美。


【绑定的内容】


    Binding主要解决的问题是怎样实现。一个绑定总封装了传输协议、消息编码、通信模式、可靠性、安全

性、事务传播以及互操作性等相关选项的集合,是的他们保持一致,让我们不做很多事情,只需轻松使用。


【绑定方式】

         

      每种绑定方式使用的传输协议与编码格式都不相同,下面是各个绑定方式与协议的对应关系,我们先

了解,然后再在我们的项目中找到我们用了那种绑定方式。

     

【项目中应用】      

<bindings>
      <!--<wsHttpBinding>
      -->
      <!--启动事务流-->
    </wsHttpBinding>-->
      <wsHttpBinding>
        <!--启动事务流-->
        <binding name="WsHttpBinding_Default" transactionFlow="true" closeTimeout="00:10:00" receiveTimeout="00:20:00" sendTimeout="00:20:00" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" useDefaultWebProxy="false">
          <!--<readerQuotas maxStringContentLength="12000000" maxArrayLength="12000000"/>-->
          <security mode="None">
            <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
            <message clientCredentialType="UserName" algorithmSuite="Default" />
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>


【总结】

      WCF绑定方式很多,我这里先从理论了解,从代码中看到了关于绑定的应用,任重而道远,还需要在接下

来的实践中去不断地去完善知识的储备。





原文地址:https://www.cnblogs.com/zsswpb/p/5771619.html