WCF为REST服务的寄宿提供了一个新的ServiceHost,即WebServiceHost。WebServiceHost是ServiceHost的子类,而WebServiceHostFactory是对应的ServiceHostFactory,在基于IIS/WAS寄宿中被使用。由于对REST服务绝大部分功能的支持都是通过WebHttpBehavior这么一个终结点行为实现的,所以WebServiceHost的核心功能就是将该终结点行为应用到寄宿服务的所有终结点。除此之外,WebServiceHost还具有一些额外的功能,这些功能都是通过重写OnOpening方法实现的。

由于WebHttpBehavior提供了帮助页面,所以当我们通过WebServiceHost对REST服务进行寄宿的时候会屏蔽掉通过ServiceDebugBehavior服务行为提供的帮助页面。由于通过服务行为ServiceMetadataBehavior实现的元数据发布机制是基于SOAP的,如果我们在寄宿服务上应用了ServiceMetadataBehavior行为,WebServiceHost也会将基于HTTP-GET的元数据发布功能屏蔽。我们可以通过一个简单的实例来证实这一点。

using (WebServiceHost host = new WebServiceHost(typeof(EmployeesService)))
   2: {
   3:     ServiceDebugBehavior serviceDebug = 
   4:     host.Description.Behaviors.Find<ServiceDebugBehavior>();
null == serviceDebug)
   6:     {
   7:         serviceDebug = new ServiceDebugBehavior();
Add(serviceDebug);
   9:     }
true;
true;
  12:  
  13:     ServiceMetadataBehavior serviceMetadata = 
  14:     host.Description.Behaviors.Find<ServiceMetadataBehavior>();
null == serviceMetadata)
  16:     {
  17:         serviceMetadata = new ServiceMetadataBehavior();
Add(serviceMetadata);
  19:     }
true;
true;
Open();
  23:  



    



    



    
  27:  



    



    



    
  31: }

相关文章:

  • 2022-12-23
  • 2021-11-27
  • 2022-12-23
  • 2022-01-08
  • 2022-01-28
猜你喜欢
  • 2022-12-23
  • 2021-09-11
  • 2021-06-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-20
相关资源
相似解决方案