WCF跟踪日志分析 - 帮助

时间:2010-09-21 21:08:32

标签: wcf performance tracing

我在解密WCF跟踪文件时遇到问题,我希望有人可以帮我确定管道中的哪个位置会产生延迟。 “处理消息XX”的跟踪如下所示,活动边界与转移到“处理操作”之间似乎有997ms的延迟,执行我的服务代码(大约需要50ms)。

Processing Message trace

首先,我不确定我是否正确理解“时间”列以表示活动项目的开始时间。我认为情况就是这样,因为钻入“处理操作”跟踪会显示一个活动列表,其中第一个时间戳等于“处理操作”项的上述跟踪中显示的时间戳。

我的主要问题是:如何确定997ms时间跨度内发生的事情?当我读到服务跟踪查看器时,似乎这种活动类型涉及“传输或安全处理”,这让我相信这是一个网络问题,但我无法确定。

如果它是相关的,下面是深入到“处理操作”跟踪的快照。

Processing Action trace

是否有人对如何深入研究此活动以确定延迟原因有所了解?

(我应该提到响应时间从大约60毫秒到超过一整秒,并且似乎只在特定环境中这样做,这进一步使我想到网络问题)

提前谢谢!

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。我的传输时间从100毫秒到4秒不等。我在服务器上安装了Wireshark,发现了很多网络数据包传输错误。令人印象深刻的是,网络堆栈可以将其全部排序并且消息最终通过。最后我注意到服务器NIC驱动程序的“速度和双工”设置设置为100Mb Full。测试客户端在Auto,它们之间有几个切换。我认为所有的设备都可以解决这个问题,但显然不是。将服务器值更改为“自动”可解决网络错误和跟踪传输延迟。

答案 1 :(得分:0)

我建议添加一个额外的跟踪源,特别是网络跟踪跟踪源,请参阅How to: Configure Network Tracing

您可以使用System.Net和System.Net.Sockets。这应该有助于证实您的网络问题。

顺便说一句,您提到有关活动涉及传输或安全处理,在以前的经验中,我发现如果您使用基于证书的安全性来获取客户端身份或使用证书的邮件安全性,则WCF通道可能会受到遍历证书链以验证证书的延迟。这可能不适用于您,因为您可能没有使用基于证书的安全性。