微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

切换到TLS 1.2后,C#app再也无法访问网站 – GetResponse()失败

我们有一个内部应用程序,可以向我们的供应商站点发出 XML调用.出于PCI合规性和安全性原因,他们开始禁用除TLS 1.1和TLS 1.2之外的所有内容.他们已经建立了一个测试站点,我们有这个新要求进行测试.

我们的应用程序(C#,Windows Forms应用程序,.NET 4.5)可以很好地连接到他们当前的站点.
当我尝试调用他们的新测试站点时,它在GetRequestStream()调用失败时出现“底层连接已关闭:发送时发生意外错误”.

如果我更新应用程序并设置:
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12

然后它由GetRequestStream()获取,并在GetResponse()调用失败,“底层连接已关闭:连接意外关闭.”

我尝试了很多东西,其中没有一个有效.我正在设置UserAgent,我尝试设置KeepAlive = false,…
如果我在浏览器中访问供应商URL,我可以很好地完成它.我只是遇到了我的C#应用​​程序的问题

有什么想法吗?我显然无法访问他们的服务器.在我的机器上有人设置我需要改变吗?

解决方法

我认为您的请求很可能在TLS协商阶段失败.我自己也遇到过类似的问题,通常需要使用网络协议分析器(如wireshark)来跟踪客户端和服务器之间的通信,并确定消息已停止的位置.如果TLS协商失败,服务器将终止连接,您将收到类似于上面的错误.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐