Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# TcpClient/SslStream-主机中的软件中止了已建立的连接_C#_Ssl_Exception_Tcpclient_Sslstream - Fatal编程技术网

C# TcpClient/SslStream-主机中的软件中止了已建立的连接

C# TcpClient/SslStream-主机中的软件中止了已建立的连接,c#,ssl,exception,tcpclient,sslstream,C#,Ssl,Exception,Tcpclient,Sslstream,我有一个用TcpClient/SslStream管理的SSL连接。我每10秒发送一个心跳类型请求以保持其新鲜: try { this.sslStream.Write(byteArray, 0, byteArray.Length); } catch (Exception exception) { this.log("

我有一个用TcpClient/SslStream管理的SSL连接。我每10秒发送一个心跳类型请求以保持其新鲜:

            try
            {
                this.sslStream.Write(byteArray, 0, byteArray.Length);
            }
            catch (Exception exception)
            {
                this.log("[exception] (thread " + this.tableRow.ToString() + ") ApiThread.PostMessage(" + _url + "): " + exception.ToString());
            }
该请求是HTTP类型的请求

一段时间后(可能是30秒或10分钟),连接中断,我遇到一个异常:

System.IO.IOException:无法将数据写入传输连接:一个 已建立的连接已被主机中的软件中止

嗯,我一直在阅读StackOverflow和谷歌搜索解决方案。一般来说,人们建议:

1) 查找断开连接的防火墙。没有防火墙。在2个不同的网络中测试

2) 要激活/停用KeepAlive选项,请执行以下操作:

this.tcpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true/false);
没有帮助

我没有做的是,我没有读取服务器响应,而且肯定有一个响应,我只是不需要对我的消息进行响应。有没有可能因为没有读取传入的消息,我以某种方式弄乱了读取缓冲区(没有不时清空它),从而使Windows关闭连接


连接关闭的其他可能原因是什么?这不是一个随机连接闭包,而是一种模式。没有连接的时间超过10-15分钟。

最初,我在本地计算机和远程Windows VPS上运行该代码,每次连接到感兴趣的web服务器。我还在连接到本地ApacheWeb服务器的本地计算机上测试该代码。不管我做什么,连接还是断了。我想,无论是在.NET端还是在Windows套接字端都发生了一些事情。我禁用了SSL层,并仅使用TcpClient进行了尝试。同样,连接中断。跟踪未显示任何有趣的内容:System.Net.Sockets详细:0:[6532]Socket#51288387::Send()System.Net.Sockets错误:0:[6532]Socket#51288387::UpdateStatusAfterSocketError()-ConnectionAborted System.Net.Sockets错误:0:[6532]Socket#51288387::Send中出现异常-主机中的软件中止了已建立的连接。