我正在编写一个脚本来使用第三方提供的 XML 源。我在下载其中列出的文件时遇到了问题,但提供商保证没有问题。
这些文件通常大约为 700kb,但 20% 到 80% 的下载会在中途停滞,然后在 10 分钟内没有收到任何数据包后,我收到了一个 RESET 数据包(根据 wireshark)。
为了测试这一点,我有一个非常简单的 shell 脚本:
FILE="http://www.domain.com/uploads/g4nsloshv0ppubwxxxulr4bx/an-example-file.pdf"
OUTPUT="output.pdf"
curl $FILE > $OUTPUT
我已经在办公室的两台机器上以及在 Amazon EC2 实例上运行过多次了,在所有情况下,我都看到非常快速的成功和进展的混合,只是在中途的某个点停止(每次都不一样),然后就永远无法完成。
成功率差别很大——我可能会连续 10 次成功,然后又连续 10 次停滞。
我希望有人能告诉我这是否是 .NET 服务器过载的常见症状(我猜是 IIS?)或者您是否认为我可以采取一些措施来更有力地证明这个问题。或者我确实可以采取一些不同的措施。
答案1
您是否尝试过使用不同的用户代理?
答案2
观看Fiddler。您应该看到 HTTP 级别发生的情况,同时 wireshark 也会向您显示流量。
您可能会发现导致该行为的 HTTP 请求/响应。
查看标题、检查内容长度等——寻找可能导致此行为的任何因素
看看响应是否正确,等等
这应该能帮助你缩小范围,至少能了解问题的全部范围。然后我敢打赌,你会找到一些你认为是他们的原因,或者有证据证明是他们的原因