我在从命令行调用NuGet.exe时遇到问题:
nuget.exe restore solution.sln
在我的本地机器上,这从命令行运行时没有问题。在构建服务器上,我立即看到以下错误:
An existing connection was forcibly closed by the remote host
作为背景,我正在为.NET Framework应用程序在构建服务器上设置Jenkins。
无论我是让Jenkins运行命令,还是打开CMD窗口(管理员或其他(并自己运行,都会出现此错误。即使是-Verbosity detailed
标志也一无所获。
奇怪的是,在Visual Studio 2017中对解决方案进行恢复时,效果很好。
以前有人见过这个吗?或者有什么想法吗?
所以这是TLS的问题。在查阅了大量文章并了解了TLS在各个地方存在的一些问题后,我发现了这篇文章:在NuGet.org 上弃用TLS 1.0和1.1
我应用了上面提到的注册表更改(如下所示(,突然我超越了这个错误
reg add HKLMSOFTWAREMicrosoft.NETFrameworkv4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:64
reg add HKLMSOFTWAREMicrosoft.NETFrameworkv4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:32
我看到过类似的行为,这是由于我们的it安全团队阻止了该特定域。我可以从我们的开发机器访问它,但构建服务器(运行时未连接到域(正在阻塞。