0

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

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

感谢所有的想法!

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

4

2 回答 2

0

制作一个MessageEncoder简单地包装默认实现,但在调用包装的实现(创建实例)之前ReadMessage()覆盖并记录一些信息的自定义呢?在这个阶段,完整的消息甚至没有完全通过网络传输,因此它是处理管道的一个非常早期的点。但是,显然,您对该消息一无所知。但是如果你想得到一个时间戳,那可能是一个方便的地方。Message

于 2011-05-09T19:28:28.787 回答
0

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

于 2011-05-09T19:33:39.497 回答