问题- 通过 WebClient 或 HTTPWebRequest 下载大量文件时,下载将随机但定期挂起并给出“System.Net.WebException:操作已超时。”。使用 HTTPWebRequest 时,我可以看出这个异常是通过读取流从 ConnectStream.Read 方法中引发的。更改读取流的方法,Stream.CopyTo vs Stream.ReadByte vs Stream.Read,没有任何影响。
我已经通过为下载添加一些重试代码来阻止这个异常对我们的软件产生任何影响,但我真的很想知道是什么导致了这个异常?
背景- 作为我们自定义数据同步的一部分,我们的软件必须通过 HTTPS 从我们的在线服务器 (IIS7) 下载许多 zip 文件(小于 2 mb)。在我们的一台开发机器上,我们遇到了上述问题,但我们没有在运行完全相同代码的同一台机器上遇到它。