HttpClient 不使用 ServicePointManager 服务点
HttpClient does not use ServicePointManager service points
默认情况下,HttpClient 每个主机只使用 2 个并发连接。根据 docs 我可以改变它。我不想在全球范围内更改它,我只想为我正在使用的服务更改它。因此我写了下面的代码:
// Increase connection limit in order to have more concurrent requests to MyService
ServicePointManager.FindServicePoint(myServiceUrl, null).ConnectionLimit = 20;
不幸的是,这不起作用。该服务(通过 HttpClient 调用)仍然只使用 2 个并发连接。如果我将代码更改为:
ServicePointManager.DefaultConnectionLimit = 20;
在相同的代码位置,它可以工作。但是,我不想全局更改此设置。如何只在本地更改?
编辑:我意识到有些东西正在将连接限制设置回 2。是否有任何操作(例如,实例化一个新的 WebRequestHandler,实例化一个新的 HttpClient,...?)重置连接限制?
默认情况下,HttpClient 每个主机只使用 2 个并发连接。根据 docs 我可以改变它。我不想在全球范围内更改它,我只想为我正在使用的服务更改它。因此我写了下面的代码:
// Increase connection limit in order to have more concurrent requests to MyService
ServicePointManager.FindServicePoint(myServiceUrl, null).ConnectionLimit = 20;
不幸的是,这不起作用。该服务(通过 HttpClient 调用)仍然只使用 2 个并发连接。如果我将代码更改为:
ServicePointManager.DefaultConnectionLimit = 20;
在相同的代码位置,它可以工作。但是,我不想全局更改此设置。如何只在本地更改?
编辑:我意识到有些东西正在将连接限制设置回 2。是否有任何操作(例如,实例化一个新的 WebRequestHandler,实例化一个新的 HttpClient,...?)重置连接限制?