在ServiceHost、Channel或Dispatcher处理消息之前,肯定有要附加的事件?我假设它可以通过OperationContext.Current访问,但我能找到的最接近的事件是打开和关闭。有没有像MessageReceived或BeforeMessageProcessed这样的事件?
如果不使用事件,是否有其他方法可以使用WCF类/配置来确定ServiceHost SingletonInstance当前是否正在处理DataContract?
编辑: IDispatchMessageInspector (AfterReceiveRequest和BeforeSendReply)非常完美。我有大约8个服务,需要知道他们目前正在处理的消息(DataContracts)。虽然可以使用类似于接受委托并执行BeforeReceive();InvokeDelegate();AfterReceive()的帮助器方法;但使用IDispatchMessageInspector和行为要容易得多。
发布于 2009-09-02 22:36:06
据我所知,在服务主机级别还没有这样的事件。你能解释一下你想要实现的目标吗?
通常,如果您有任何必须在消息到达时完成的处理,那么正确的方法是使用WCF为此提供的几个扩展点中的一个,如IDispatchMessageInspector。在本例中,您将通过service or an endpoint behavior将消息检查器注入到WCF管道中。
https://stackoverflow.com/questions/1370435
复制相似问题