我在 PowerShell 脚本中调用 Invoke-RestMethod 以将 zip 存档上传到 Artifactory 存储库。我从本地机器 PowerShell ISE 测试了脚本;上传完成,没有预期的问题。但是,当我在预期的目标机器上执行脚本时,我看到返回错误:
请求被中止:无法创建 SSL/TLS 安全通道。
我已经阅读了许多与此错误相关的在线帖子;共识似乎是在脚本中的 Invoke-RestMethod 调用之前立即添加以下行:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12 -bor [Net.SecurityProtocolType]::Ssl3
我添加了这一行,但问题仍然存在。
执行以下 PowerShell:
[Net.ServicePointManager]::SecurityProtocol
返回:
Ssl3、Tls、Tls11、Tls12 表明所有可用协议都已启用。
我的脚本片段现在看起来像这样:
$headers = @{"X-JFrog-Art-Api" = $artifactoryApiKey}
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12 -bor [Net.SecurityProtocolType]::Ssl3
$return=Invoke-RestMethod -Uri $uri -InFile $sourceFile -Method Put -Headers $headers
如上所述,这个脚本在我的本地机器上执行没有问题。
安装在服务器上的 .Net 4.6.1 返回错误。