我在破译 WCF 跟踪文件时遇到了问题,我希望有人能帮助我确定管道中的哪个位置发生了延迟。
“Processing Message XX”的跟踪如下所示,在事件边界和传输到“Process Action”之间似乎有 997 毫秒的延迟,在那里我的服务代码被执行(大约需要 50 毫秒)。
首先,我不确定我是否正确理解“时间”列来表示事件项目的开始时间。我认为情况确实如此,因为深入“处理操作”跟踪会显示事件列表,其中第一个时间戳等于上述“处理操作”项目跟踪中显示的时间戳。
我的主要问题是:我如何确定在这 997 毫秒的时间跨度内发生了什么?当我读到服务跟踪查看器时,似乎这种事件类型涉及“传输或安全处理”,这让我相信这是一个网络问题,但我不能确定。
如果相关,下面是深入到“流程操作”跟踪的快照。
有没有人对如何进一步深入这项事件以查明延迟原因有一些见解?
(我应该提到响应时间从大约 60 毫秒到一整秒不等,而且似乎只在特定环境中这样做,这进一步让我想到了网络问题)
先感谢您!
最佳答案
我遇到了同样的问题。我的传输时间从 100 毫秒到 4 秒不等。我在服务器上安装了 Wireshark,看到很多网络数据包传输错误。令人印象深刻的是,网络堆栈可以将其全部解决并且消息最终通过。最后我注意到服务器 NIC 驱动程序的“速度和双工”设置被设置为 100Mb Full。测试客户端在 Auto,它们之间有几个开关。我认为所有设备都可以解决这个问题,但显然不是。将服务器值更改为自动解决了网络错误并且跟踪传输延迟消失了。
关于WCF 跟踪日志分析 - 帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3764486/