在成功拨打 1,000 多个电话后,获得"An existing connection was forcibly closed"



我正在对客户端和服务器代码进行一些负载测试。随着时间的推移,前1000个电话都很好。但是(在某些运行中(,我开始得到以下异常:

System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.  
---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host..  
---> System.Net.Sockets.SocketException (10054): An existing connection was forcibly closed by the remote host.

一些搜索显示,一个常见的解决方案是添加以下代码:

System.Net.ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

但这似乎是一个解决方案,当没有一个电话工作。在我的情况下,在我开始获得上述异常之前,我可以获得1000多个成功的电话。

我问的真正目的是,在这种情况开始发生后,我会遇到很多类似的失败。

我想知道发生这种情况后,我的HttpClient是否处于故障状态?如果是,我该如何解决?(我的HttpClient是静态的,如果它失败了,那么我的所有呼叫都将失败。(

注意:我的代码作为NuGet运行,需要在.Net Framework 4.7和.Net Core 3.1中运行。

这不应该与你的代码有关,那就是主机拒绝连接,它可能是因为你发送了太多请求而关闭的,或者更可能是因为它限制了你的速率。

我认为这个问题是由于WSO2 API管理器限制了连接数量。我们更改了WSO2服务器上的一些设置,这个问题就消失了。(我不知道WSO2管理员做了哪些更改。(

相关内容

  • 没有找到相关文章

最新更新