【问题标题】:How do I set ServicePointManager.DefaultConnectionLimit in the portable framework如何在可移植框架中设置 ServicePointManager.DefaultConnectionLimit
【发布时间】:2014-08-16 15:08:13
【问题描述】:
我需要使用多个会到达 Web 服务端点的任务。每个任务都将是流数据,并会打开一个 httpWebRequest 连接。
我需要将属性 ServicePointManager.DefaultConnectionLimit 设置为大于 2 的值,但我使用的是可移植框架并且 ServicePointManager 类不可用(应该在 System.Net 中)。
如何在可移植框架中允许更多开放的网络请求?
问候。
【问题讨论】:
标签:
c#
.net
portable-class-library
system.net
【解决方案1】:
我无法在可移植框架中使用 webrequest 对象找到超过 2 个连接的方法,但我确实找到了获得更多并发连接的方法。
我只是在使用 HttpClient 类。
在我的测试中,在使用 HttpClient 时,可以使用 2 个以上的并发连接。我已经尝试了 10 个并且工作正常。
以下测试有 10 个并发连接:
var clients = new List<System.Net.Http.HttpClient>();
for (int i = 0; i < 10; i++)
{
var client = new System.Net.Http.HttpClient();
var response = client.GetAsync("http://www.google.com").Result;
clients.Add(client);
}
foreach (var client in clients)
client.Dispose();
这是一种解决方法。但是,我最初的问题仍未得到解答。