WCF配置绑定基本概念浅析

开发 开发工具
WCF配置绑定在实际应用中尅帮助我们轻松的实现一些比较简单的功能应用。在这里我们先来一起了解一下有关这方面的知识。

WCF对于开发人员来说是一个比较重要的开发插件,可以帮助我们轻松的实现一些特定的功能。在这里我们就先来了解一下WCF配置绑定的相关内容。通过编程方式或管理方式都可以WCF配置可靠性(以及有序传递)。如果我们启用了可靠性,则客户端与服务宿主端必须保持一致,否则客户端无法与服务通信。我们可以只对支持它的WCF配置绑定。例所示的服务端配置文件,使用了绑定配置节,启用了TCP绑定的可靠性。

例:启用TCP绑定的可靠性

  1. < system.serviceModel> 
  2.  < services>   
  3. < service name = "MyService">   
  4. < endpoint address = "net.tcp://localhost:8000/MyService" 
    binding = "netTcpBinding" bindingConfiguration = "ReliableTCP" 
    contract = "IMyContract"/>   
  5. < /service>   
  6. < /services>   
  7. < bindings>   
  8. < netTcpBinding>   
  9. < binding name = "ReliableTCP"> < reliableSession enabled = "true"/>   
  10. < /binding>   
  11. < /netTcpBinding> 
  12.  < /bindings>   
  13. < /system.serviceModel>  

至于编程配置方式,TCP绑定和WS绑定提供了略微不同的属性来实现WCF配置绑定。例如,NetTcpBinding绑定接受一个Boolean型的构造函数参数,用来启动可靠性:

  1. public class NetTcpBinding : Binding,...   
  2. {   
  3. public NetTcpBinding(...,bool reliableSessionEnabled);   
  4. //更多成员   

我们只能在对象的构造期间启用可靠性。如果通过编程方式设置可靠性,需要创建支持可靠性的绑定对象:

  1. Binding reliableTcpBinding = new NetTcpBinding(...,true);  

NetTcpBinding定义了只读的ReliableSession类,通过它获取可靠性的状态:

  1. public class ReliableSession {   
  2. public TimeSpan InactivityTimeout {get;set;}   
  3. public bool Ordered {get;set;}   
  4. //更多成员 }   
  5. public class OptionalReliableSession : ReliableSession {   
  6. public bool Enabled {get;set;}   
  7. //更多成员 }   
  8. public class NetTcpBinding : Binding,... {   
  9. public OptionalReliableSession ReliableSession {get;}   
  10. //更多成员 }  

理论上,服务代码和契约定义应该与它使用的绑定及属性无关。服务不应该考虑绑定,在服务代码中也不应该包含它所使用的绑定。不管WCF配置绑定是哪一种,服务都应该能够正常工作。然而实际上,服务的实现或者契约本身都会依赖于消息的有序传递(Ordered Delivery)。为了帮助契约或服务的开发者能够约束支持的绑定,WCF定义了DeliveryRequirementsA。

【编辑推荐】

  1. 深入探讨WCF缓存机制基本概念
  2. WCF选择绑定在实际应用中技巧分享
  3. Silverlight WCF服务正确组建方法浅谈
  4. WCF Address配置文件正确使用方法解读
  5. WCF协定各种不同类型概念解读
责任编辑:曹凯 来源: IT专家网
相关推荐

2010-02-23 16:32:29

WCF服务

2009-12-21 10:27:52

WCF基本概念

2010-02-24 17:17:04

WCF宿主环境

2010-03-02 13:14:38

WCF MSMQ队列

2010-03-01 16:25:07

WCF体系架构

2010-03-01 14:50:30

WCF行为类型

2009-12-21 15:33:07

WCF集合元素

2010-02-25 14:46:31

2010-03-02 11:10:43

WCF标准终结点

2009-12-21 14:37:14

2010-03-02 16:22:31

WCF状态应用

2009-12-21 16:52:02

WCF序列化

2009-12-22 10:16:54

WCF服务状态

2010-03-01 16:41:04

WCF数据表

2010-02-03 14:36:47

C++仿函数

2010-03-01 17:57:11

WCF缓存机制

2009-08-21 14:47:39

C#网络编程

2011-03-28 11:05:17

ODBC

2012-09-11 14:39:03

Moosefs

2014-04-16 15:11:19

Spark
点赞
收藏

51CTO技术栈公众号