0

我想调试为什么我的应用程序在下面使用 WCF 发送这么多数据。我尝试检查 WCF 跟踪日志并使用 Fiddler 检查流量,但我需要一个指向有问题的客户端代码的堆栈跟踪。

所以,我安装了一个 custom IClientMessageInspector,但是我怎么知道给定Message实例的实际数据的大小呢?ToString()给定实例的Message返回一个 XML,但我不确定它的大小是否是它。

有没有一种方法可以更深入、更接近实际发送消息的方式连接到 WCF 堆栈?

更新

发现这个问题 1 岁,很有趣,但没有人回答 - https://stackoverflow.com/questions/457683/message-size-after-serialize

4

2 回答 2

1

您提到了跟踪日志-但是您是否启用了消息日志记录?有了这个,你应该清楚地看到底层消息,所以你应该能够准确地看到网络上的数据是什么?

于 2010-01-21T12:23:59.660 回答
0

您可以使用消息拦截器,但请注意“消息的主体只能被使用......一次”(请参阅​​ msdn)。

本质上,您需要使用Message.CreateBufferedCopy()创建消息的副本以随心所欲地处理,包括调用 ToString() 将其转储到某个地方。

此外,当消息拦截器被链接时,您可能看不到原始消息,而是看到前一个拦截器创建/更改的消息。

因此,如果您真的只想查看线路上的内容,您可能最好使用内置的WCF 跟踪,正如 Marc 已经说过的那样。

于 2010-01-21T14:39:28.067 回答