事件处理- WCF检测消息何时首次到达



我有一个带有HTTPS端点的自托管WCF 4.0服务。我有一个方法,在消息传入后写入一些跟踪信息。然而,有些消息的大小是400k,所以在WCF拥有它和我的控制台应用程序拥有它之间可能会有很长的等待。我如何在那里得到一个钩子或拦截层,这样我至少可以知道消息是什么时候第一次进来的?

我认为有一个WCF性能计数器与此相关,所以一定有一些方法知道…

感谢所有的想法!

这与检测WCF客户端打开通道操作不同,这是关于了解HTTP流量何时首次进入。也许我不需要监视WCF服务上的东西,也许我需要监视拦截HTTP的其他WCF层。有人能说吗?

如何制作一个自定义的MessageEncoder,简单地包装默认实现,但覆盖ReadMessage(),并在调用包装的实现(创建一个Message实例)之前记录一些信息 ?在这个阶段,完整的消息甚至还没有完全流式传输到网络上,因此这是处理管道的一个非常早期的点。然而,很明显,您还不了解该消息。但是如果您想获得时间戳,那么这里可能是一个方便的地方。

一个选项是在AfterReceiveRequest方法覆盖中使用消息大小检查代码为您的服务实现IDispatchMessageInspector接口。您的代码应该类似于这篇博文中的代码。

相关内容

  • 没有找到相关文章

最新更新