【问题标题】:C# WebClient running slow the first timeC# WebClient 第一次运行很慢
【发布时间】:2025-12-30 21:05:11
【问题描述】:

我正在使用 WebClient 从网页下载一些文本,如下所示:

WebClient wc = new WebClient();
string str = wc.DownloadString("http://blah");

现在虽然它工作得非常好,但我面临的一个问题是它第一次初始化和下载字符串时非常慢 - 大约需要 5 秒。之后,它会在半秒内下载文本。

有什么办法可以克服这个问题吗?我真的希望它一直都很快,这样就不会让用户感到烦恼。

如果这很重要,我正在使用 C#.NET 4.0。

【问题讨论】:

  • 您正在尝试获取 ASP.NET 的远程站点吗?
  • 我会做一些性能分析,看看是远程部分需要 5 秒才能响应还是本地部分。
  • 我遇到了同样的问题,我的远程站点是 ASP.Net。为什么要问是不是ASP.Net Darin?

标签: performance string c#-4.0 download webclient


【解决方案1】:

以下解决方案取自here

您看到的是由自动代理发现引起的。当应用程序启动时,最初 我们决定使用什么代理,然后使用该代理或代理脚本 后续请求。当您关闭应用程序时,脚本或代理基础架构消失了 下次启动应用程序时,我们必须再次执行此操作。

你有几个选择。

  1. 您可以通过进入 IE 设置并关闭自动检测代理设置选项来关闭自动代理。这是在工具-> Internet 选项-> 连接选项卡-> LAN 设置按钮中。取消选中自动检测设置。

  2. 如果您可以确定一个静态代理服务器 [trhat 不会动态更改其名称],您可以指定该代理 WebProxy wp = new WebProxy(,......);

WebClient.Proxy = wp;

【讨论】:

  • 谢谢,我知道有类似的问题,但我在任何地方都找不到。实际上,我已经通过在应用程序负载上运行额外请求来“解决”问题,但这显然是个坏主意。
最近更新 更多