zoukankan      html  css  js  c++  java
  • WCF 第四章 绑定 跨机器通信

    这一部分描述了用来在.NET应用程序间跨机器通信的绑定。我们将描述如何通过配置文件和代码来自定义每一个绑定。每一个绑定都会在一个典型场景的上下文中查看。

    提示 以”net” 为前缀的绑定应该被用于.NET应用程序之间

    WCF把所有在.NET应用程序之间使用的绑定加上”net”前缀。绑定名字的前缀是一个暗示,让我们知道应该选择一个特定的绑定 来使用。这意味着这些绑定有特殊的仅能用于.NET应用程序的特性。相反的,所有以”ws”为前缀的绑定意味着使用Web Services的非.NET应用程序。

    netTcpBinding

    netTcpBinding绑定用来支持在一个网络中的不同机器间部署的.NET应用程序,包括在局域网和广域网间的通信。我们称这种类型的通信为 跨机器通信。在这种情况下不需要互通性,因为两个应用程序都创建在.NET平台上。当在网络间通信时这提供给我们非常大的灵活性。因为没有互通信的需求, 通信可以为最佳性能而完善。

    netTcpBinding绑定使用二进制编码和TCP协议来实现在网络间的最好性能。通常建议在.NET应用程序间跨机器通信时使用 netTcpBinding绑定。这不是一个硬性规定,但是覆盖了大多数情况。在防火墙将两个.NET应用程序分开时使用netTcpBinding并不 合适。通常唯一能够在防火墙之间通信的方式就是使用HTTP协议。在这种情况下,你将需要使用basicHtppBinding绑定而不是 netTcpBinding绑定。

    下面的代码显示了netTcpBinding绑定的地址格式

    net.tcp://{hostname}[:port]/{service location}

    TCP协议的默认端口是808。这是任何基于TcpTransportBindingElement绑定元素,包括netTcpBinding绑定的情形。

    表4.3 列出了netTcpBinding绑定可配置的绑定属性。依据具体情况,它们都是非常重要的需要了解的内容。例如,默认的netTcpBinding绑定 要关掉端口共享。这会影响你的应用程序如果你打算在同一个端口寄宿多个服务的话。查看附录中”服务间共享端口”部分,”高级主题”,来获取更多关于端口共 享的信息。另外一个netTcpBinding的重要属性是maxConnections. maxConnections属性限制了到终结点的连接数量。默认值是0。为了最大化吞吐量这个值需要增加。

    表4.3 netTcpBinding 属性

    n/a-意味着这个设置是一个需要多个属性被设置的子节点元素或者依赖于其他属性的设置才能使用。

    下面的配置信息是用来与列表4.2到4.4的示例程序一起使用的。列表4.7中的配置文件使用netTcpBinding绑定来暴露StockQuoteService服务。

    列表 4.7 netTcpBinding 寄宿配置

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <system.serviceModel>
    <services>
    <service name="EssentialWCF.StockQuoteService">
    <endpoint address="" binding="netTcpBinding" bindingConfiguration=""
    name
    ="myEndpoint" contract="EssentialWCF.IStockQuoteService" />
    <host>
    <baseAddresses>
    <add baseAddress="net.tcp://localhost/stockquotservice" />
    </baseAddresses>
    </host>
    </service>
    </services>
    </system.serviceModel>
    </configuration>

    列表4.8 显示了调用列表4.7中显示的使用netTcpBinding 绑定的服务的客户端配置文件。

    列表4.8 netTcpBinding客户端配置

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <system.serviceModel>
    <client name="EssentialWCF.StockQuoteService">
    <endpoint address="" binding="netTcpBinding" bindingConfiguration=""
    name
    ="myEndpoint" contract="EssentialWCF.IStockQuoteService" />
    </client>
    </system.serviceModel>
    </configuration>

    =======

    转载自

     

  • 相关阅读:
    ora-01847:月份中日的值必须介于 1 和当月最后一日之间
    (转)ORACLE中关于外键缺少索引的探讨和总结
    (转) Oracle性能优化-读懂执行计划
    shutdown immediate 持久无法关闭数据库之解决方案
    Oracle11g adump目录下面.aud增长导致空间撑满无法删除导致CRS无法启动的解决方法
    linux几种常见的文件内容查找和替换命令
    unzip解压3G或者4G以上文件失败的解决方法
    IMP-00058: ORACLE error 1882 encountered
    AIX文件系统/var空间100%的问题
    html5手机网站需要加的那些meta/link标签,html5 meta全解(转)
  • 原文地址:https://www.cnblogs.com/llbofchina/p/2092986.html
Copyright © 2011-2022 走看看