zoukankan      html  css  js  c++  java
  • WCF协议与绑定

    35.2  WCF概念

    本节描述WCF的如下方面:

    ●WCF通信协议

    ●地址、端点和绑定

    ●合同

    ●消息模式

    ●行为

    ●主机

    35.2.1  WCF通信协议

    如前所述,可以通过许多传输协议与WCF服务通信。在.NET 3.5 Framework中定义了4个协议:

    ●HTTP:它允许与任何地方的WCF服务通信,包括Internet。可以使用HTTP通信技术创建WCF Web服务。

    ●TCP:如果正确配置了防火墙,它允许与本地网络或Internet上的WCF服务通信。TCP比HTTP高效,功能也比较多,但配置起来比较复杂。

    ●指定的管道:它允许与WCF服务通信,该WCF服务必须与调用代码位于同一台机器的不同进程上。

    ●MSMQ:这是一种排队技术,允许应用程序发送的消息通过队列路由到目的地。MSMQ是一种可靠的消息传输技术,可以确保发送给队列的消息一定达到该队列。MSMQ还是一种异步技术,所以只有排在前面的消息都处理完了,服务仍有效时,才能处理当前的消息。

    这些协议常常允许建立安全连接。例如,可以使用HTTPS协议建立Internet上的安全SSL连接。TCP使用Windows安全架构为本地网络上的安全性能提供了更多的可能性。

    图35-1中列出了这些传输协议如何把应用程序与不同位置上的WCF服务连接起来。本章将介绍所有这些协议,但MSMQ除外,这个主题需要较深入的讨论。

     
    (点击查看大图)图  35-1

    为了连接WCF服务,必须知道它在什么地方。这表示必须知道端点的地址。

    用于服务的地址类型取决于所使用的协议。本章前面介绍的3个协议都需要格式化的服务地址:

    ●HTTP:HTTP协议的地址是URL,其格式很常见:http://<server>:<port>/<service>。对于SSL连接,也可以使用https://<server>:<port>/<service>。如果在IIS中存储服务,<service>就是扩展名为.svc的文件(.svc文件类似于Web服务中使用的.asmx文件)。IIS地址可能包含比这个示例更多的子目录,即.svc文件之前有更多用/字符分隔的部分。

    ●TCP:TCP的地址采用net.tcp:// <server>:<port>/<service>形式。

    ●指定的管道:指定的管道连接的地址与上述类似,但没有端口号。其形式是net.pipe:// <server>/<service>。

    服务的地址是一个基地址,它可用于为表示操作的端点创建地址。例如,在net.tcp:// <server>:<port>/<service>/operation1上有一个操作。

    假定创建一个WCF服务,它有一个操作,绑定了前面介绍的3个协议,我们就可以使用下面的基地址:

    http://www.mydomain.com/services/amazingservices/mygreatservice.svcnet.tcp://myhugeserver:8080/mygreatservicenet.pipe://localhost/mygreatservice 
    
    http://www.mydomain.com/services/amazingservices/mygreatservice.svc/greatopnet.tcp://myhugeserver:8080/mygreatservice/greatopnet.pipe://localhost/mygreatservice/greatop 

    如前所述,绑定不仅指定了操作使用的传输协议,还可以指定在传输协议上通信的安全要求、端点的事务处理功能、消息编码等。

    绑定提供了非常大的灵活性,所以.NET Framework提供了一些可用的预定义绑定。还可以把这些绑定用作起点,修改它们,得到需要的绑定类型。预定义绑定有一些必须遵循的原则。每种绑定类型都用System.ServiceModel名称空间中的一个类表示。表35-1中列出了这些绑定及其基本信息。

    表  35-1

      

      

    BasicHttpBinding

    最简单的HTTP绑定,Web服务使用的默认绑定,它的安全功能有限,不支持事务处理

    WSHttpBinding

    HTTP绑定的一种高级形式,可以使用WSE中引入的所有额外功能

    WSDualHttpBinding

    扩展了WSHttpBinding功能,包含双向通信功能。在双向通信中,服务器可以启动与客户机的通信,还可以进行一般的消息交换

    WSFederationHttpBinding

    扩展了WSHttpBinding功能,包含联合功能。联合功能允许第三方实现单向广播(single sign-on)和其他专用安全措施。这是一个高级主题,本章不讨论

    NetTcpBinding

    用于TCP通信,允许配置安全性、事务处理等

    NetNamedPipeBinding

    用于指定管道的通信,允许配置安全性、事务处理等

    NetPeerTcpBinding

    允许与多个客户机进行广播通信,是一个高级类,本章不讨论

    NetMsmqBinding和

    MsmqIntegrationBinding

    这些绑定用于MSMQ,本章不讨论

  • 相关阅读:
    C. Shaass and Lights 解析(思維、組合)
    D. Binary String To Subsequences(队列)(贪心)
    CodeForces 1384B2. Koa and the Beach (Hard Version)(贪心)
    CodeForces 1384B1. Koa and the Beach (Easy Version)(搜索)
    CodeForces 1384C. String Transformation 1(贪心)(并查集)
    CodeForces 1384A. Common Prefixes
    POJ-2516 Minimum Cost(最小费用最大流)
    POJ3261-Milk Patterns(后缀数组)
    HDU-1300 Pearls(斜率DP)
    HDU-4528 小明系列故事-捉迷藏(BFS)
  • 原文地址:https://www.cnblogs.com/qwji/p/3398884.html
Copyright © 2011-2022 走看看