尝试搜索 NuGet 包时无法创建 SSL/TLS 安全通道

use*_*444 5 visual-studio nuget

当我在 Visual Studio 中按下 NuGet 包上的“浏览”选项卡时,它显示“发生错误”并显示错误消息

[nuget.org] Unable to load the service index for source https://api.nuget.org/v3/index.json.
  An error occurred while sending the request.
  The request was aborted: Could not create SSL/TLS secure channel.
Run Code Online (Sandbox Code Playgroud)

我已经使用 Visual Studio 和 NuGet 很长时间了,几天前 NuGet 还在工作。有人可以弄清楚为什么会发生这种情况以及我可以做些什么来解决它?

Visual Studio 2017 版本:15.9.17

Vla*_*lav 6

NuGet 已永久删除对 TLS 1.0 和 1.1 的支持确保您的系统使用 TLS 1.2

如果已禁用 TLS 1.2 支持,请运行以下命令以启用它:

reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v DisabledByDefault /t REG_DWORD /d 0 /f /reg:32
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v DisabledByDefault /t REG_DWORD /d 0 /f /reg:64
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v Enabled /t REG_DWORD /d 1 /f /reg:32
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v Enabled /t REG_DWORD /d 1 /f /reg:64
Run Code Online (Sandbox Code Playgroud)

  • 起初我忽略了这个解决方案,因为我的机器中没有 TLS 1.2 注册表密钥。但就我而言,添加密钥并按上述方式设置解决了问题 (2认同)
  • 您可能需要添加 DotNet 注册表项 `reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:64` 和 `reg add HKLM\SOFTWARE\Microsoft\ .NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:32` (2认同)

Lan*_*SFT 1

我已经使用 Visual Studio 和 NuGet 很长时间了,NuGet 几天前就可以工作了。有人能弄清楚为什么会发生这种情况以及我能做些什么来解决它吗?

该问题可能与网络、nuget 缓存冲突甚至 nuget 代理更相关。因此,有很多因素可能导致这个问题。经过我的研究,很多用户都面临着和你一样的问题。要解决此问题,请按照我的建议进行操作:

建议

  1. 清理nuget缓存以消除缓存干扰。

  2. 选择可用的包源(工具-->选项-->Nuget Package Manager-->包源)并添加一个新的源链接,例如http://packages.nuget.org/v1/FeedService.svc/. 此时,更换一个服务点,检查网络是否干扰之前的服务链路。

  3. 尝试将代理设置添加到 Nuget.Config 文件中。有关详细信息,请参阅此链接:Nuget Config 部分Nuget 代理设置

更多信息你可以参考这个

另外,如果VS2019不是最新版本,请将其更新到最新版本。

如果您的问题仍然存在,请随时告诉我们。

  • nuget.org 的正确包源是“https://api.nuget.org/v3/index.json”。答案中提到的东西是非常古老的东西,不应该在任何现代系统中使用。 (2认同)