我正在开发一个WCF服务,我需要拦截传入消息以进行自定义验证。 经过我的研究,我发现我需要为此目的实现IDispatchMessageInspector。所以,我在界面的AfterReceiveRequest方法中插入了自定义验证。
问题: 当我调试代码时,我看到消息接收不会触发我实现的AfterReceiveRequest方法。
问题: 我是否需要在某处注册我的类/方法以在收到消息时触发?
答案 0 :(得分:2)
您已经实现了IDispatchMessageInspector - 但是您是否已将其添加到服务器端的ServiceHost .Behaviors
集合中以便包含它?
有关详细信息,请参阅此blog post - 首先需要创建一个实现IEndpointBehavior的类(或IServiceBehavior - 您需要的任何一个)并在其上实现ApplyDispatchBehavior
方法。
然后,您需要在打开ServiceHost之前将此行为添加到ServiceHost,或者您需要创建另一个类以允许您为服务配置此行为。
马克