8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

WebClient、HttpWebRequest 和 HttpClient 的最大并发请求数

volkerschulz 2月前

66 0

在 .NET 4.5 中使用 WebClient、HttpWebRequest 和 HttpClient 类发送的并发/并行请求数量是否有限制?或者,如果

在 .NET 4.5 中,使用 WebClient、HttpWebRequest 和 HttpClient 类发送的并发/并行请求数量是否有限制?或者,如果 Web API 或服务器没有限制,您是否可以发送无限的并行请求?抱歉,如果问题太宽泛,请纠正我,以便我缩小范围。

帖子版权声明 1、本帖标题:WebClient、HttpWebRequest 和 HttpClient 的最大并发请求数
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由volkerschulz在本站《vb.net》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 是的,有限制。默认连接限制是每个远程主机 2 个并发连接。这可以被覆盖。例如,我相信 ASP.NET 默认会覆盖默认设置,即每个远程主机 10 个连接。

    来自 https://msdn.microsoft.com/en-us/library/7af54za5.aspx :

    客户端和服务器之间的连接数会对应用程序吞吐量产生巨大影响。默认情况下,使用 HttpWebRequest 类的应用程序最多使用两个与给定服务器的持久连接,但您可以根据每个应用程序设置最大连接数。

    要自行更改连接限制,请使用 使用当前默认连接限制为该远程主机创建Manager.DefaultConnectionLimit 。请确保在进程启动后、开始与远程主机建立 HTTP 连接之前立即进行此更改。这是因为,一旦您实际与远程主机建立 HTTP 连接,就会 ServicePoint ServicePoint

    请注意,除了 HTTP 客户端类强制执行的限制之外,并发连接还有其他有效限制。例如,如果您想打开一百万个并发连接,则可能会耗尽 RAM、线程或其他操作系统资源。如果您遇到了这些限制,那么您需要问另一个更一般的问题,即如何扩展 .net 进程以处理大量并发 I/O。但如果您只打开几十个连接,那么您应该没问题。

    顺便说一句,如果您好奇为什么默认限制如此之低,其实这是 HTTP 规范中规定的——目标是确保自私的 HTTP 客户端不会用同时连接淹没 HTTP 服务器。尽管现代浏览器忽略了该规范。请参阅 http://www.stevesouders.com/blog/2008/03/20/roundup-on-parallel-connections/ 了解有关此主题的更多详细信息,比您想知道的还要多!

返回
作者最近主题: