解决 Windows 7 下载Visual Studio 2019 0B/s 的问题(还可以解决部分驱动安装,或者网络连接的问题)
如果你用的是Windows 10操作系统基本上不用看这个文章了,应该帮不到你,Windows 10的更新中应该是自带这个补丁的。
问题描述
在Windows 7 x64 SP1 系统的虚拟机中安装Visual Studio 2019 时发现 Visual Studio Installer 一直是 0B/s的下载速度,过一会儿就出现了个弹窗,让我检查 Internet连接。
按照网路上的方法,我试过了 修改Hosts,修改DNS刷新DNS缓存都没有效果。
解决问题
0x01: 给系统安装 KB4474419 补丁
补丁作用:大概就是让系统认识SHA-2的数字签名,来保证链接可以正确建立。
安装方法:简单一点,直接安装个人版火绒杀软 。(不用真的安装,如果电脑没有SHA-2补丁的话它会先给你安装这个补丁)然后就让你重启,重启之后就可以删掉了,或者选择安装火绒都可以(没收广告费)。
之后再进行下载就应该不会出现 0B/s 的情况了。
顺带一提对于 Arduino IDE 的驱动安装,也可以用这个方法来解决。 反正就是你能想到的用到了SHA-2的地方都可以用这个解决。(大概)
这个补丁之前好像是KB3033929 来解决的,但是貌似被更新成现在的KB4474419 了。
问题发现解决过程
对于我解决问题过程好奇的人可以继续往下看。
在遇到这个问题之后经过百度的多次搜索,终于找到一个方法介绍了我之前没有想到方法,决定把这个教程看完,虽然介绍的方法没有用但却启发了我。我为啥不直接去看出问题的软件的错误日志呢?
教程中也提供了 错误日志的路径 C:\Users\%UserName%\AppData\Local\Temp\dd_boot* 找到那个dd_boot 开头时间结尾的那个就是了。
打开文件找到报错的那行日志仔细看, 定位到如下几行。
VisualStudio Bootstrapper:2021/10/6 1:00:46: Attempting download 'https://aka.ms/vs/16/release/installer' using engine 'WebClient'
VisualStudio Bootstrapper:2021/10/6 1:00:48: WebClient error 'TrustFailure' - proxy setting 'Default' - 'https://aka.ms/vs/16/release/installer'.
VisualStudio Bootstrapper:2021/10/6 1:00:48: WebClient failed in 'https://aka.ms/vs/16/release/installer' with 'The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.' - 'https://aka.ms/vs/16/release/installer'.
VisualStudio Bootstrapper:2021/10/6 1:00:48: WebClient failed attempting to access https://aka.ms/vs/16/release/installer via 23.63.47.52
VisualStudio Bootstrapper:2021/10/6 1:00:48: Download failed using WebClient engine. System.Net.WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. ---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception)
at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
又由里边的 WebClient error 'TrustFailure' 和Could not establish trust relationship for the SSL/TLS secure channel.' 定位到问题的关键所在,是 信任问题,因为信任问题无法建立信任的SSL/TLS安全通道。
那我就突然想到了虚拟机里的Windows 7 还没有打过 SHA-2证书的补丁,不认识SHA-2的证书,把这个证书当作是假的了。主动断开了和服务器的连接。
最终安装补丁,问题解决。
|