2013-03-26 57 views
0

我尝试实现自定义服务行为以从响应消息中获取Cookie。我在AfterReceiveRequest方法中创建了一个断点。它从未被击中。怎么了 ? 我认为需要注册服务的服务行为。怎么样 ?
实现自定义服务行为

行为:

public class HttpResponseMessageInspector : BehaviorExtensionElement, IDispatchMessageInspector, IServiceBehavior 
{ 
    public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext) 
    { 

     //Here is my breakpoint 

     return null; 
    } 

} 


的Web.config

<extensions> 
    <behaviorExtensions> 
    <add name="HttpResponseMessageInspector" type="MyNamespace.HttpResponseMessageInspector, myassembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/> 
    </behaviorExtensions> 
</extensions> 
<behaviors> 
    <serviceBehaviors> 
    <behavior> 
     <HttpResponseMessageInspector/> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 


服务注册

 RouteTable.Routes.Add(new ServiceRoute("Customers", new NinjectWebServiceHostFactory(), typeof(CustomersService))); 
     RouteTable.Routes.Add(new ServiceRoute("Companies", new NinjectWebServiceHostFactory(), typeof(CompaniesService))); 
+1

这可能有所帮助:http://www.codeproject.com/Articles/190806/Send-Cookies-When-Making-WCF-Service-Calls – 2013-03-26 11:42:04

+0

不要。不管怎么说,还是要谢谢你。 – 2013-03-26 11:47:41

回答

0

我做了一个类,它实现了NinjectWebServiceHostFactory并覆盖了CreateServiceHost函数。