IDIspatchMessageInspector

我实现了IDispatchMessageInspector.AfterReciveRequest然后我这样配置:

                          

但它不起作用。

我检查我的程序集和我的本地参考,我没有找到Microsoft.WCF.Documentation.InspectorInserterHostApplication DLL我在网上搜索下载HostApplication DLL但我什么也没找到。

我需要做什么?

我需要实现更多的东西,或者我只需要这个配置。

我发现使用也扩展Attribute的IServiceBehavior实现附加我的IDispatchMessageInspector实现要容易得多。 然后在ApplyDispatchBehavior方法中,将消息检查器附加到所有通道中的所有端点。

这篇文章对我很有帮助。

示例代码:

 public class MyServiceBehavior : Attribute, IServiceBehavior { public void ApplyDispatchBehavior( ServiceDescription serviceDescription, ServiceHostBase serviceHostBase ) { foreach( ChannelDispatcher cDispatcher in serviceHostBase.ChannelDispatchers ) foreach( EndpointDispatcher eDispatcher in cDispatcher.Endpoints ) eDispatcher.DispatchRuntime.MessageInspectors.Add( new RequestAuthChecker() ); } } 

然后在执行服务合同时,您只需将属性添加到类中即可。

 [ServiceBehavior( InstanceContextMode = InstanceContextMode.PerCall )] [MyServiceBehavior] public class ContractImplementation : IServiceContract {