如何解决System.Net.Sockets.SocketException,“基础连接意外关闭”,但它与打开的HTTPDebugger
因此,我与公司的服务器通信。我发送数据(保存为* .csv文件)并接收数据(用于版本检查,仅是一个字符串)。 从一秒钟到另一秒钟(无需更改代码或服务器端的任何内容),我从代码中得到了此异常:
“ 基础连接意外关闭。发送数据时出错。->” [...]“ 无法从连接中读取数据:现有连接已被关闭远程主机 --->“
这是我的代码:
' Build data
' ...
' Create request and write data
Dim Agent As String = "> agent goes here <"
Dim Request As HttpWebRequest = DirectCast(HttpWebRequest.Create(Url),HttpWebRequest)
Request.UserAgent = Agent
Request.Method = "POST"
Request.ContentLength = outData.Length
Request.ContentType = "application/x-www-form-urlencoded"
Request.KeepAlive = False
Request.ProtocolVersion = HttpVersion.Version11 ' Fix 1
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 ' Fix 2
Or SecurityProtocolType.Tls12
System.Net.ServicePointManager.Expect100Continue = True ' Fix 3
Request.Timeout = 1000000000 ' Fix 4
Request.ReadWriteTimeout = 1000000000 ' Fix 5
Request.ClientCertificates.Add(New X509Certificate()) ' Fix 6
Using Stream As IO.Stream = Request.GetRequestStream ' Exception still gets thrown here
Stream.Write(outData,outData.Length)
End Using
如您所见,我已经尝试了多种不同的修复方法(老实说,我真的不知道该怎么做,我仍然需要在该领域获得更多的知识)
有趣的是,当我启动HTTPDebugger时,不会发生错误,也没有任何问题,一切都很好。
所以我的猜测是HTTPDebugger以某种方式安装/拦截了我不知道的某个证书,然后服务器再次接受了连接。 但是,我该如何提供这样的证书,在哪里获得以及应该使用哪个证书。如果那不是问题,那会是什么?
解决方法
结果证明从.NET 4.5更新到.NET 4.7.2 ,然后再次编译即可解决问题。
我不知道为什么会发生此问题,否则本来可以解决的,但这对我来说已经解决了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。