Cake.build 错误:“底层连接已关闭:发送时发生意外错误”
Posted
技术标签:
【中文标题】Cake.build 错误:“底层连接已关闭:发送时发生意外错误”【英文标题】:Cake.build error : "The underlying connection was closed: An unexpected error occurred on a send" 【发布时间】:2020-12-02 07:47:17 【问题描述】:尝试在 powershell 中运行构建蛋糕文件时遇到问题。
build.cake 文件的第一行是:#addin "nuget:?package=Cake.SemVer&version=1.0.14"
/tools/packages.config 中的版本是<package id="Cake" version="0.21.1" />
这是full script的链接
这对于 Jenkins 和 localhost 是一样的。
在回复中,我也看到了这些行: 正在下载并安装 Roslyn... 安装包(使用https://packages.nuget.org/api/v2)...
我不确定 Roslyn 是否需要此下载,或者通知下载和安装 Roslyn 的步骤...它已经结束,下一步是安装包。
我尝试更新 cake 和 semver 版本。它运行正常:
build.cake
#addin "nuget:?package=Cake.SemVer&version=4.0.0"
#addin "nuget:?package=semver&version=2.0.6"
packages.config
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Cake" version="0.38.4" />
</packages>
但是在构建的结果中,我没有看到例如“正在下载并安装 Roslyn...”,所以我不确定它是否正常工作:
感谢您的帮助
【问题讨论】:
【参考方案1】:请确认您的 build.ps1 文件是否包含以下代码行:
https://github.com/cake-build/resources/blob/master/build.ps1#L53-L68
# Attempt to set highest encryption available for SecurityProtocol.
# PowerShell will not set this by default (until maybe .NET 4.6.x). This
# will typically produce a message for PowerShell v2 (just an info
# message though)
try
# Set TLS 1.2 (3072), then TLS 1.1 (768), then TLS 1.0 (192), finally SSL 3.0 (48)
# Use integers because the enumeration values for TLS 1.2 and TLS 1.1 won't
# exist in .NET 4.0, even though they are addressable if .NET 4.5+ is
# installed (.NET 4.5 is an in-place upgrade).
# PowerShell Core already has support for TLS 1.2 so we can skip this if running in that.
if (-not $IsCoreCLR)
[System.Net.ServicePointManager]::SecurityProtocol = 3072 -bor 768 -bor 192 -bor 48
catch
Write-Output 'Unable to set PowerShell to use TLS 1.2 and TLS 1.1 due to old .NET Framework installed. If you see underlying connection closed or trust errors, you may need to upgrade to .NET Framework 4.5+ and PowerShell v3'
NuGet 已关闭 TLS 1.0 和 1.1,除非进行与上述类似的更改,否则您将无法从 NuGet.org 下载任何包。更多细节可以在这里找到:
https://devblogs.microsoft.com/nuget/nuget-org-will-permanently-remove-support-for-tls-1-0-and-1-1-on-june-15th/
在此 PR 中删除了下载 Roslyn 组件的需要:
https://github.com/cake-build/cake/pull/1645/files
在 Cake v0.22.0 版本中提供。因此,您不会在更新版本的 Cake 中看到有关下载 Roslyn 的消息。
关于你使用的 Cake 的版本,0.21.1,这是 3 年前发布的:
https://www.nuget.org/packages/Cake/0.21.1
除非有令人信服的理由继续使用此版本,否则我建议您切换到使用最新版本。
【讨论】:
谢谢加里。我已经在 build.ps1 文件中添加了这些行,但不幸的是我们在 .NET Framework 4 版本中运行。我们不想更新 Cake 版本,因为它可能会发生重大变化,但我认为我们将不得不重新考虑这一点。再次感谢您以上是关于Cake.build 错误:“底层连接已关闭:发送时发生意外错误”的主要内容,如果未能解决你的问题,请参考以下文章