Teamcity 代理无法使用 powershell 上传到人工制品

Teamcity agent can't upload to artifactory using powershell

我正在尝试使用 powershell 和 nant 从 teamcity 上传到 artifactory。我尝试了两种方法,使用 Invoke-WebRequest 以及更新 WebClient。 Webclient.UploadFile 像这样失败:

Exception calling "UploadFile" with "3" argument(s): "An exception occurred during a WebClient request."

虽然 Invoke-WebRequest 像这样失败:

Invoke-WebRequest : The underlying connection was closed: An unexpected error occurred on a send.

如果我 运行 从那台机器上手动操作它们中的任何一个,它就可以工作。如果像这样以 teamcity 代理服务用户身份启动 powershell

Start powershell -Credential (Get-Credential)

然后 运行 手动输入代码,就可以了。只有当 teamcity 实际尝试进行部署时,它才会每次都失败。我应用了

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

修复,我应用了

[System.Net.ServicePointManager]::CertificatePolicy = {$true}

修复,当我手动 运行 它时它总是工作,但当它 运行 通过 teamcity 时它永远不会工作。怎么回事?

我最终使用了另一个项目中更大的脚本,该脚本使用 WebClient 来尝试 'checksum deploy' 以查看工件是否已更改,然后再尝试使用此 [=11] 中的代码进行实际部署=].