如何计算客户端上的WCF调用次数?

时间:2011-10-12 12:56:33

标签: .net wcf wcf-client

我有大量不同的WCF客户端类(继承自ClientBase)。

我想捕获方法名称以及每次使用此类客户端时调用此方法的次数。此信息将用于性能调整。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您应该查看System.ServiceModel.Dispatcher namespace,因为它提供了许多接口,您可以使用这些接口拦截客户端(和服务器)端的呼叫来执行计数。

请注意,此处的大多数方法都在Message级别运行;高级别的WCF不了解方法的概念,它会调度消息,接收消息,然后处理它们。

但是,在大多数情况下,您可以从Message中找出映射应该是什么并记录下来。

实施适当的调度程序界面后,您只需wire it upClientBase<T> instances即可。在调度程序界面中,确保您有一种方法可以保留原始调度程序(如果您使用该路线),这样您就可以适当地转发呼叫。

答案 1 :(得分:2)

查看WCF定义的扩展点。卡罗的作品非常出色here。 请特别注意MessageInspector。