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!

  • 相关阅读:
    所谓的底层问题
    字符流与字节流
    字节和字符,对信息进行编码
    Asp.net和数据库的一些概念
    谈.NET,由编译器开始谈起
    Extjs中的dom,Ext.Element和Ext.Component对象的关系
    WCF和Delphi通信时序列化的问题
    认真的考虑了下领域模型,发现设计是最难的部分。书上的例子各个对象职责划分的不错,可惜能看懂不代表能设计出。
    MS100 [011020]
    MS100[001]
  • 原文地址:https://www.cnblogs.com/sheldon-lou/p/4966515.html
Copyright © 2011-2022 走看看