Powershell TFS rest api调用restmethod“;基础连接已关闭:receive上发生意外错误;

Powershell TFS rest api调用restmethod“;基础连接已关闭:receive上发生意外错误;,powershell,tls1.2,azure-devops-rest-api,Powershell,Tls1.2,Azure Devops Rest Api,我试图在Azure DevOps发布管道中的一个powershell任务中调用TFS和/或Azure DevOps REST Api。我尝试在两个不同的服务器(安装了w/azure管道代理)中运行相同的rest api代码,但其中一个正在工作,其中一个返回“基础连接已关闭:接收上发生意外错误…”。这两个代理服务器同时启用了tls 1.1和1.2。工作服务器的powershell版本为4.0,返回错误的服务器的版本为5.0 当我运行“[Net.ServicePointManager]::Secur

我试图在Azure DevOps发布管道中的一个powershell任务中调用TFS和/或Azure DevOps REST Api。我尝试在两个不同的服务器(安装了w/azure管道代理)中运行相同的rest api代码,但其中一个正在工作,其中一个返回“基础连接已关闭:接收上发生意外错误…”。这两个代理服务器同时启用了tls 1.1和1.2。工作服务器的powershell版本为4.0,返回错误的服务器的版本为5.0

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

我为服务器提供了一种变通方法,通过使用 [Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12 但我想知道为什么我需要在其中一台服务器上强制使用TLS1.2,而不是在其他服务器上,因为它们似乎具有相同的TLS配置


在不了解服务器其他信息的情况下,可以使用PowerShell V4在该服务器上设置注册表项设置

您可以检查以下注册表项,查看它们是否具有以下属性:

'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 

对于一个有效的,可能有一个系统范围的设置,在.NET中启用TLS1.2