首页 > 解决方案 > 为什么 RestSharp 将与同一服务器的并发连接限制为 2?

问题描述

我正在尝试并行运行多个线程,每个线程都启动自己的 RestSharp 客户端并全部连接到同一服务器以使用 RestSharp 的 DownloadData 方法将结果下载到文件中。

尽管所有线程都启动并并行调用客户端,但一次只有 2 个文件开始接收数据。当至少一个完成时,其他文件才会开始增长,每次在任何给定时间最多有 2 个受到影响。

标签: c#restsharp

解决方案


我发现使用 WebClient 可以对同一服务器进行默认最多 2 个同时连接(请参阅如何以编程方式删除 WebClient 中的 2 个连接限制

我在那里找到的解决方案之一也可以与 RestSharp 一起使用,那就是设置System.Net.ServicePointManager.DefaultConnectionLimit. 在下面的示例中,它设置为 10。只需确保在创建客户端之前设置了 DefualtConnectionLimit:

System.Net.ServicePointManager.DefaultConnectionLimit = 10;
var Client = new RestClient("https://someURL");   

推荐阅读