【发布时间】:2011-06-10 17:21:33
【问题描述】:
我编写了一个非常简单的控制台应用程序,它只是使用以下代码下载文件:
System.Net.WebClient web = new System.Net.WebClient ();
web.DownloadFile ("http://www.google.com", "file.txt");
在我以前的开发机器上,这非常快。我一执行DownloadFile 方法,请求就通过了网络,很快就得到了响应。我使用 ProcMon 工具检查了这种行为。
然而,在切换到另一台机器之后,它恰好比我最初的开发机器强大得多,我注意到在调用DownloadFile 时大约 5-8 秒内什么都不会发生。使用浏览器访问相同的 URL 几乎会立即显示结果。
在花了几个小时研究这个问题,进入 .NET 源代码之后,我终于放弃了 System.Net.ServicePointManager.FindServicePoint,因为我觉得单步不再有意义,而且似乎需要一些代理解析。
我终于在 Internet 选项 对话框的 LAN 设置 对话框中关闭了自动检测设置,该对话框位于 Internet Explorer 8 中(I我正在运行 Windows 7 x64),没有设置复选框的对话框。这神奇地使一切都做得非常非常快。没有更多的延迟。
好吧,我找到了一种方法来规避我所观察到的问题,但如果有人能就我的代码可能有什么问题分享一些想法,我会很高兴。我可以通过某种方式配置WebClient 实例以某种方式达到相同的效果吗?
【问题讨论】:
标签: .net proxy webclient downloadfile