如何解决经过1,000多次成功的呼叫后,获得“强制关闭现有连接”
我正在对客户端和服务器代码进行一些负载测试。随着事情的发展,前1,000个电话就可以了。但是(在某些运行中),我开始收到以下异常:
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管理员所做的更改。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。