【问题标题】:C# Webclient is very slow on first requestC# Webclient 在第一次请求时非常慢
【发布时间】:2017-12-31 02:25:13
【问题描述】:

我知道以前有人问过这个问题,但我在过去 2 小时里一直在尝试解决方案(通过 Google 找到),但没有任何积极的结果。

我找到的解决方案是:将“webclient.proxy”设置为“null”,但不幸的是,这对第一个请求没有太大影响。

除了在运行时做一个虚拟请求之外,还有其他解决方案可以让它(我的官方请求)更快地完成吗?

【问题讨论】:

  • 为什么不直接使用HttpClient?推荐超过WebClient

标签: c# performance webclient


【解决方案1】:

Webclient 有一些地方可能会很慢,但并不总是 WebClients 故障

  1. DNS 查找 - 如果您使用本地 DNS 甚至远程 DNS,查找速度较慢或拆分 dns,则完全有可能初始 DNS 命中需要一些时间,之后 DNS 将是缓存。

  2. 测试远程端,某些 web 服务器和 web 应用程序在一定时间后需要更长的时间来响应他们的第一个请求(只需尝试一个非预编译的 IIS 进程,几个小时内没有人使用它,你'会明白我的意思)。要排除这种情况,请先尝试手动请求 URL,以查看它是否加快了 WebClient Up 的速度。

  3. 运行 HTTP 嗅探器。像Fiddler 这样的东西,您可以在其中看到初始请求何时发生、何时发出请求、第一个字节的时间和传输时间。这将帮助您了解问题出在您的应用程序、网络堆栈还是更远的地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    • 1970-01-01
    • 2010-10-28
    • 2013-07-08
    • 2010-12-13
    • 2023-03-13
    相关资源
    最近更新 更多