【问题标题】:TFS rest api Invoke-restmethod "The underlying connection was closed: An unexpected error occurred on a receive"TFS rest api Invoke-restmethod“底层连接已关闭:接收时发生意外错误”
【发布时间】:2019-07-16 01:01:56
【问题描述】:

我正在尝试在 Azure DevOps 的发布管道中的一个 powershell 任务中调用 TFS 和/或 Azure DevOps REST Api。我尝试在两台不同的服务器(安装了 azure 管道代理)中运行相同的 rest api 代码,但其中一台正在工作,其中一台返回“底层连接已关闭:接收时发生意外错误..”。两个代理服务器都启用了 tls 1.1 和 1.2。工作服务器具有 powershell v 4.0,返回错误的服务器具有 v5.0。

当我运行“[Net.ServicePointManager]::SecurityProtocol”时,两个服务器都返回了 ssl3、Tls。

我有一个通过使用返回错误的服务器的解决方法 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 但我想知道为什么我需要在其中一台服务器上强制使用 TLS 1.2 而不是其他服务器,因为它们似乎具有相同的 TLS 配置。

【问题讨论】:

  • 对于可行的,可能有一个系统范围的设置可以在 .NET 中启用 tls 1.2

标签: powershell tls1.2 azure-devops-rest-api


【解决方案1】:

在不了解服务器的其他内容的情况下,可能会使用 PowerShell V4 在该服务器上设置注册表项设置。

您可以检查以下 reg 键以查看它们是否具有以下属性:

'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord


'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord 

【讨论】:

    猜你喜欢
    • 2020-05-15
    • 2021-05-09
    • 2011-01-25
    • 2014-03-10
    相关资源
    最近更新 更多