NuGet.exe 从命令行给出 "existing connection was forcibly closed by the remote host" 错误

NuGet.exe from command line gives "existing connection was forcibly closed by the remote host" error

我在从命令行调用 NuGet.exe 时遇到问题:

nuget.exe restore solution.sln

在我的本地机器上,这 运行 没有来自命令行的问题。在构建服务器上,我立即看到以下错误:

An existing connection was forcibly closed by the remote host

作为背景,我正在为我们的 .NET Framework 应用程序在我们的构建服务器上设置 Jenkins。

无论我有 Jenkins 运行 命令还是我启动 CMD window(管理员或其他)和我自己 运行,都会发生此错误。甚至 -Verbosity detailed 标志也没有出现。

奇怪的是,在 Visual Studio 2017 年内对解决方案进行恢复时,它工作正常。

有没有人以前遇到过这个问题或有任何想法?

我见过类似的行为,这是由于我们的 IT 安全团队阻止了该特定域。我可以从我们的开发机器访问它,但是构建服务器(运行 未附加到域)被阻止。

原来这是 TLS 的问题。在查阅了很多文章并了解了各个地方 TLS 的一些持续问题后,我找到了这篇文章: Deprecating TLS 1.0 and 1.1 on NuGet.org

我应用了那里提到的注册表更改(如下所示),但突然间我超出了这个错误

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