加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 06:51:16 所属栏目:百科 来源:网络整理
导读:我们有一个内部应用程序,可以向我们的供应商站点发出 XML调用.出于PCI合规性和安全性原因,他们开始禁用除TLS 1.1和TLS 1.2之外的所有内容.他们已经建立了一个测试站点,我们有这个新要求进行测试. 我们的应用程序(C#,Windows Forms应用程序,.NET 4.5)可以很好
我们有一个内部应用程序,可以向我们的供应商站点发出 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协商失败,服务器将终止连接,您将收到类似于上面的错误.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读