WCF行为控制实质内容简要概述

开发 开发工具
WCF行为控制是在实际应用中一步不可或缺的操作技术。我们知道,在这些行为中,类型多样化,我们需要对他们有一个熟练的掌握。

WCF开发插件的出现,给开发人员带来了非常不一样的体验。尤其是它独特的特点更是令开发人员眼前一亮。在这里先来了解一下WCF行为控制的基本内容。在完成服务契约设计和服务实现后,我们可以设置该服务的运行期行为(Behavior)。这些WCF行为控制包括 Service Behaviors、Endpoint Behaviors、Contract Behaviors、Operation Behaviors。#t#

以下就常用的行为使用,做些演示。

WCF行为控制之ServiceBehaviorAttribute & OperationBehaviorAttribute

这是两个最常用的行为控制特性,可用于控制:

服务对象生命周期。

并发管理。

异步通讯。

配置文件参数。

事务。

元数据转换。

会话(Session)周期。

  1. [ServiceContract]  
  2. public interface ICalculate  
  3. {  
  4. [OperationContract]  
  5. int Add(int a, int b);  
  6. }  
  7. [ServiceBehavior(InstanceContextModeInstanceContextMode=
    InstanceContextMode.PerCall)]  
  8. public class CalculateService : ICalculate  
  9. {  
  10. public int Add(int a, int b)  
  11. {  
  12. Console.WriteLine(this.GetHashCode());  
  13. return a + b;  
  14. }  
  15. }  
  16. public class WcfTest  
  17. {  
  18. public static void Test()  
  19. {  
  20. AppDomain.CreateDomain("Server").DoCallBack(delegate  
  21. {  
  22. ServiceHost host = new ServiceHost(typeof(CalculateService));  
  23. host.AddServiceEndpoint(typeof(ICalculate), new WSHttpBinding(), 
    "http://localhost:8080/calc");  
  24. host.Open();  
  25. });  
  26. ChannelFactory<ICalculate> factory = new ChannelFactory
    <ICalculate>(new WSHttpBinding(),   
  27. "http://localhost:8080/calc");  
  28. ICalculate o = factory.CreateChannel();  
  29. Console.WriteLine(o.Add(1, 2));  
  30. Console.WriteLine(o.Add(1, 2));  
  31. factory.Close();  
  32. }  

 

输出:

  1. 30136159  
  2. 3  
  3. 41153804  

WCF行为控制之ServiceMetadataBehavior

用于开启元数据获取功能。只有使用该行为,客户端才能通过 Svcutil.exe 或其他工具获取服务信息,进而生成客户端代理文件。

 

  1. ServiceHost host = new ServiceHost(typeof(CalculateService));  
  2. host.AddServiceEndpoint(typeof(ICalculate), new BasicHttpBinding(),
     "http://localhost:8080/calc");  
  3. ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();  
  4. behavior.HttpGetEnabled = true;  
  5. behavior.HttpGetUrl = new Uri("http://localhost:8080/calc");  
  6. host.Description.Behaviors.Add(behavior);  
  7. host.Open(); 

 

WCF行为控制之ServiceDebugBehavior

开启调试功能,如将服务器端的异常信息直接传送给客户端。

 

  1. ServiceHost host = new ServiceHost(typeof(CalculateService));  
  2. host.AddServiceEndpoint(typeof(ICalculate), new WSHttpBinding(), 
    "http://localhost:8080/calc");  
  3. host.Description.Behaviors.Find<ServiceDebugBehavior>()
    .IncludeExceptionDetailInFaults = true;  
  4. host.Open(); 

 

责任编辑:曹凯 来源: 博客园
相关推荐

2010-02-24 15:28:59

WCF ABC

2010-03-02 16:28:11

WCF发布订阅

2010-03-02 14:41:00

WCF行为控制

2010-03-02 15:53:02

WCF服务合同

2010-02-26 10:46:12

WCF行为扩展

2010-03-02 17:55:37

WCF终结点地址

2010-02-25 17:04:54

WCF实例上下文

2009-06-16 13:25:02

JBoss和JMS

2010-02-24 14:20:27

WCF并发模型

2010-01-27 10:52:15

Android垃圾回收

2009-12-14 13:19:07

Ruby字符串

2010-03-18 13:46:10

无线USB技术

2009-11-17 15:02:27

Oracle客户端

2009-11-06 14:08:06

WCF行为扩展

2010-03-02 09:24:22

WCF变更行为

2010-03-01 14:50:30

WCF行为类型

2009-12-18 19:07:33

2011-03-14 15:52:50

Windows Azu

2009-11-06 14:25:56

WCF接口

2009-12-08 17:08:13

WCF Service
点赞
收藏

51CTO技术栈公众号