WCF:检查交换的大小

时间:2012-05-25 07:32:56

标签: c# wcf performance benchmarking

要做一些WCF基准测试,我需要有办法获得交换数据的大小(所有标题(甚至TCP)/压缩/...).

这是一个更大的基准测试(也尝试不同的绑定,编码......)所以我需要以编程方式和 NOT 通过wireshark之​​类的东西来做。

在某个地方有钩子吗?

所有通道/绑定/编码器都是以编程方式创建的,以自动执行某些测试。

我找到了一些方法(http://devlicio.us/blogs/derik_whittaker/archive/2011/02/03/how-to-intercept-a-wcf-message-to-track-message-size.aspx),但我不确定它是否适用于非文本数据。或http://zamd.net/2008/08/15/calculating-wcf-message-size/但我不知道如何启动它(并且不确定它是否适用于我的自定义编码器

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

您有两个选择:

  • 使用WCF可扩展性。这通常是更多的工作,你需要考虑各种wcf情况。
  • 使用带外解决方案,如wireshark

我不确定你为什么喜欢前者 - 我建议尝试使用wireshark,我相信它也可以自动化。无论如何你想在wcf中做这个,你应该实现一个自定义的消息编码器来计算线上的字节大小。这需要是一个包含其中任何其他编码器的通用编码器。对于通用编码器,这里是an example。 请注意,编码器方法仅考虑消息大小,但不考虑其上的任何帧(例如HTTP标头)。这就是为什么我认为wireshark对你的情况更好。