消息首次到达时WCF检测?

时间:2011-05-01 03:02:43

标签: wcf event-handling interception

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

我认为有一个与此相关的WCF性能计数器,因此必须有一些方法可以知道......

感谢所有想法!

这与Detect WCF client open channel operation不同,这是关于知道何时首先进入HTTP流量。也许不是我需要监视我的WCF服务上的东西,也许我需要监视其他一些WCF层这是拦截HTTP。谁能说呢?

2 个答案:

答案 0 :(得分:0)

如何创建一个自定义MessageEncoder来简单地包装默认实现,但覆盖ReadMessage()并在调用包装实现(创建{{1}之前记录一些信息实例)?在这个阶段,完整的消息甚至没有通过线路完全流传输,因此它是处理流水线的早期点。但是,显然,你对这条消息一无所知。但是如果你想得到一个时间戳,这可能是一个方便的地方。

答案 1 :(得分:0)

一个选项是使用AfterReceiveRequest方法覆盖中的邮件大小检查代码为您的服务实现IDispatchMessageInspector interface。您的代码should look something like the code in this blog post.