【问题标题】:C# HTTP request Max connectionsC# HTTP 请求最大连接数
【发布时间】:2010-08-17 08:19:13
【问题描述】:

我们有许多网络服务器 (15),每个服务器都有许多 URL (30)。 我编写了一个 Windows 桌面应用程序,该应用程序发出并访问每个服务器和每个 url 组合。 (使用 httpWebRequest.Proxy 来做到这一点)。 它通常一次只用于 2 台服务器。所以总共有 60 个请求。

第一个问题是 2 连接限制,所以我在表单加载中添加了这个: ServicePointManager.DefaultConnectionLimit = 500

这有帮助,但我似乎遇到了另一个限制。

在我们为这些网站推出代码后,他们可能需要一段时间才能做出响应。初始化过程大约需要 30-40 秒!不过那是另一回事了。

但似乎存在 Windows XP 连接限制。如果我打开 IE 并尝试访问一个站点,而我正在运行我的应用程序来检查站点,则 IE 需要很长时间才能返回一个页面。一旦应用开始收到请求并关闭它们,IE 也会收到它的响应。

此外,我们正在调用的页面还为我们提供了调用其他 WebService 调用所花费的时间。这些时间有时很慢,但有时很快。 我对每个 HTTP 请求都有一个计时器,一旦我发出请求就会启动计时器。有时页面指定的响应时间和 HTTP 请求的计时器之间的差异很大,比如 40 秒。

所以我认为正在发生的事情是请求正在排队并且它的计时器正在运行,但尚未发送到页面。

有谁知道我需要更改什么来增加 Windows XP 中的总连接限制?我已阅读有关注册表更改或 tcpip.sys 编辑的信息,但希望 Stackoverflow 的明智和聪明的小组给出明确的答案。

谢谢,我希望这是有道理的。

【问题讨论】:

  • 只是为了让您知道。我确实尝试更改 tcpip.sys,但没有奏效。我改成 100 还是有延迟
  • 您是否看到引用事件 ID 4226 的事件日志错误消息?如果不是,那么您对 ​​tcpip.sys 的更改有效,但如果是,那么您可能需要仔细检查。有关进一步讨论,请参阅serverfault.com/questions/51597/…。但是,根据您的描述,我想知道更大的问题是否不在服务器端。如果我正确阅读了您的描述,您将在每台服务器上同时发出 30 个请求。服务器一次能接受这么多吗?

标签: c# windows http connection


【解决方案1】:

您能否尝试将其添加到您的 app.config 中:

<configuration> 
  <system.net> 
    <connectionManagement>
      <add address="*" maxconnection="65535" />
    </connectionManagement>
  </system.net> 
</configuration>

【讨论】:

    猜你喜欢
    • 2017-04-30
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 2014-10-18
    • 2015-12-30
    • 2016-01-18
    • 2016-02-02
    相关资源
    最近更新 更多