[求助]在win7 C#调用HttpWebRequest.GetRequestStream 报错的问题
发表于:
2021-5-20 17:56
5115
[求助]在win7 C#调用HttpWebRequest.GetRequestStream 报错的问题
起因:去年用C#写了一个上传文件的工具,上传接口是后端提供。 此接口一直使用正常,最近使用此工具的时候,突然在调用HttpWebRequest.GetRequestStream 时报The request was aborted: Could not create SSL/TLS secure channel.
网上一顿搜索,发现大多数提示设置 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;可以解决此问题。本人尝试了下,加了此代码,在win10下果然解决。可是到win7问题依旧。 我又尝试了提升net版本到4.6,在win10,不用加上面的代码就直接成功,但是win7依然会报此错误,我把SecurityProtocolType枚举的4个类型都增加到代码里面,依然如此。 通过charles抓包发现了问题。 win7 下面如图。 正常访问的抓包如图。 发现我的client没有提供TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256这加密套件。 打开gpedit.msc->管理组件-->网络-->ssl配置,查看里面提供的,里面并没有这个套件,在windows官网查了下,win7并不支持这个套件,要win8.1才开始支持。 但是我用chrome浏览直接访问我接口的域名,抓包显示chrome却提供了此套件。不知道各位有没有遇到过此问题,对此有何看法,难道是chrome自己写了这个套件?或者有第3方库提供这个套件使用?
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!