并行 HTTP 请求被 Windows 注册表阻止
您尝试在应用程序中同时执行多个 HTTP 请求,但性能受到限制。通过调查潜在的瓶颈,您发现 Windows 可能会对并发请求施加限制。
为了解决此问题,您按照建议修改了与连接限制相关的注册表值。然而,尽管进行了调整并重新启动计算机,您的应用程序仍然仅使用两个 TCP 连接运行,限制了其吞吐量。
问题出现了:为什么注册表修改不起作用?
您引用的博客文章中提供的信息并不完全准确。提到的注册表项 MaxConnectionsPerServer 和 MaxConnectionsPer1_0Server, 与允许的并发连接数没有直接关系。相反,这些键控制可以对特定服务器保持打开状态的最大连接数。
要控制最大并发连接数,您应该使用 ServicePointManager.DefaultConnectionLimit 属性。此属性允许您指定 ServicePoint 对象可以拥有的最大连接数。默认情况下,此限制设置为 2。
要增加连接限制,只需将 DefaultConnectionLimit 属性设置为所需的值。下面是一个示例:
ServicePointManager.DefaultConnectionLimit = 20;
此修改将提高通过您的应用程序发出的所有 HTTP 请求的并发连接限制,使您能够实现所需的吞吐量。
以上是为什么我的注册表修改没有增加 Windows 中的并行 HTTP 请求?的详细内容。更多信息请关注PHP中文网其他相关文章!