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. public NetTcpBinding(...,bool reliableSessionEnabled); 
  3. //更多成员 
  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。

分享文章:WCF配置绑定基本概念浅析
路径分享:http://www.shufengxianlan.com/qtweb/news11/323561.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联