zoukankan      html  css  js  c++  java
  • WCF 入门 (21)

    前言

    再不写一篇就太监了,哈哈。

    第21集 WCF里面的Binding Bindings in WCF

    其实不太了解为什么第21集才讲这个Binding,下面都是一些概念性的东西,不过作为一个入门视频,了解一下也无妨吧。

    Binding其实属于WCF中endpoint三个属性之一。他们分别是address,binding,contract合称ABC。来看一下下面这个service 节点。

        <services>
          <service name="CalculatorService.CalculatorService">
            <endpoint address="" binding="wsHttpBinding" contract="CalculatorService.ICalculatorService">
            </endpoint>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
            <host>
              <baseAddresses>
                <add baseAddress="http://localhost:8080/" />
              </baseAddresses>
            </host>
          </service>

    address的值是空值,因为这个其实是一个相对地址,一个服务的地址由下面的baseAddress+address 共同构成。

    binding的值是wsHttpBinding,后续会详细讲。

    contract的值是CalculatorService.ICalculatorService,这个给客户端用的合约,由命名空间+接口名字两部分构成。

    构建一个简单的HelloService服务,然后分别用basicHttpBinding和netTcpBinding,配置文件分别是

            <endpoint address="" binding="basicHttpBinding" contract="HelloService.IHelloService"></endpoint>

            <endpoint address="" binding="netTcpBinding" contract="HelloService.IHelloService"></endpoint>

    两个endpoint在更新了服务端引用后,都能达到想要的结果。现在有两个问题,

    1. Binding是什么。

    WCF里面的Binding定义了客户端与服务端交流的方式。他会影响到以下三个方面。

    a. 传输协议(比如http,或者tcp,NamedPipe,MSMQ)

    b. 信息的编码方式(比如普通的text/xml或者二进制数据)

    c. 其他的一些协议约定(比如是否要使用可靠的消息传输,是否支持事务)

    2. 如何选择Binding。

    framework自带了一些Binding,具体看这里

    stackoverflow上有个推荐的回答还不错,可以参考他来选择合适的Binding。点这里

    这集稍微介绍了一下WCF里面的Binding,最后两个链接还是很管用的。 按照工作中实际的使用情况,用的比较多的是wsHttpBinding。

    Thank you!

  • 相关阅读:
    八数码(BFS)
    食物链(并查集)
    最大异或对(Trie)
    解决espeak编译的一些问题
    AcWing 3779. 相等的和
    AcWing 3775. 数组补全(环图)
    AcWing 3728. 城市通电(最小生成树)
    AcWing 3727. 乘方相乘(进位制)
    tarjan
    LC刷题简要记录
  • 原文地址:https://www.cnblogs.com/sheldon-lou/p/4966515.html
Copyright © 2011-2022 走看看