我有一个带有HTTPS端点的自托管WCF 4.0服务。我有一些方法可以在消息进入后写入一些跟踪信息。但是,有些消息的大小是400k,所以在WCF拥有它和我的控制台应用程序之间可以想象有很长的等待时间。如何在那里获得一个钩子或拦截层,这样我至少可以知道消息何时进入?
我认为有一个与此相关的WCF性能计数器,因此必须有一些方法可以知道......
感谢所有想法!
这与Detect WCF client open channel operation不同,这是关于知道何时首先进入HTTP流量。也许不是我需要监视我的WCF服务上的东西,也许我需要监视其他一些WCF层这是拦截HTTP。谁能说呢?
答案 0 :(得分:0)
如何创建一个自定义MessageEncoder
来简单地包装默认实现,但覆盖ReadMessage()
并在调用包装实现(创建{{1}之前记录一些信息实例)?在这个阶段,完整的消息甚至没有通过线路完全流传输,因此它是处理流水线的早期点。但是,显然,你对这条消息一无所知。但是如果你想得到一个时间戳,这可能是一个方便的地方。
答案 1 :(得分:0)
一个选项是使用AfterReceiveRequest方法覆盖中的邮件大小检查代码为您的服务实现IDispatchMessageInspector interface。您的代码should look something like the code in this blog post.