IDIspatchMessageInspector
我实现了IDispatchMessageInspector.AfterReciveRequest然后我这样配置:
但它不起作用。
我检查我的程序集和我的本地参考,我没有找到Microsoft.WCF.Documentation.InspectorInserter
或HostApplication
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 {