注册环境失败

时间:2019-09-04 15:34:40

标签: azure-devops

我无法在Azure DevOps上创建发布定义。我认为PowerShellOnTargetMachines.ps1中的Register-Environment函数失败:

try
{
    $connection = Get-VssConnection -TaskContext $distributedTaskContext

    Write-Verbose "Starting Register-Environment cmdlet call for environment : $environmentName with filter $machineFilter"
    $environment = Register-Environment -EnvironmentName $environmentName -EnvironmentSpecification $environmentName -UserName $adminUserName -Password $adminPassword -WinRmProtocol $protocol -TestCertificate ($testCertificate -eq "true") -Connection $connection -TaskContext $distributedTaskContext -ResourceFilter $machineFilter
    Write-Verbose "Completed Register-Environment cmdlet call for environment : $environmentName"

    Write-Verbose "Starting Get-EnvironmentResources cmdlet call on environment name: $environmentName"
    $resources = Get-EnvironmentResources -Environment $environment

    if ($resources.Count -eq 0)
    {
        Write-Telemetry "Input_Validation" "No machine exists for given environment"
        throw (Get-LocalizedString -Key "No machine exists under environment: '{0}' for deployment" -ArgumentList $environmentName)
    }

    $resourcesPropertyBag = Get-ResourcesProperties -resources $resources
}

出现以下错误(我已经省略了一些组织的信息,但是那里并且看起来很正确):

2019-09-04T12:34:55.6886629Z ##[debug]VssConnection created
2019-09-04T12:34:55.7518340Z ##[debug]Starting Register-Environment cmdlet call for environment : [machine] with filter [machine]
2019-09-04T12:34:55.7843531Z ##[debug]Begin Create-Environment cmdlet
2019-09-04T12:34:55.7872731Z ##[debug]UserName=[username]
2019-09-04T12:34:55.7878292Z ##[debug]WinRmProtocol=HTTP
2019-09-04T12:34:55.7878658Z ##[debug]TestCertificate=False
2019-09-04T12:34:55.7878965Z ##[debug]Unable to create a environment object for given json - Unexpected character encountered while parsing value: A. Path '', line 0, position 0.
2019-09-04T12:34:55.7879241Z ##[debug]projectName=[projectName]
2019-09-04T12:34:55.7879517Z ##[debug]Getting environment [machine] from DTL Service
2019-09-04T12:34:55.8485808Z ##[debug]Processed: ##vso[task.logissue type=error;code={"Task_Internal_Error":Page not found.};]

我不知道该怎么办。任何想法表示赞赏。感谢您抽出宝贵的时间来阅读我的问题。

1 个答案:

答案 0 :(得分:0)

根据Mike留下的评论的详细信息,该问题应由您正在使用的任务版本及其定义的功能脚本引起。

根据您在DC ticket中提出的故障单描述:

  

我正在尝试使用以下“ PowerShellOnTargetMachines”的V2   从azure devops发行的PowerShell脚本,来自   天青管道任务。

您使用的PowerShellOnTargetMachines的版本是2. *。

我们可以按照我在此case中展示的方法,使用反编译工具来获得Register-Environment cmdlet脚本。

enter image description here

您可以看到“ PowerShellOnTargetMachines V2”中此cmdlet支持的参数。*不包括 TaskContext Connection 。这就是为什么您收到错误消息"Unable to create a environment object for given json - Unexpected character encountered while parsing value"的原因。因为您在任务中输入的参数与Register-Environment cmdlet的配置不匹配。


您可以尝试使用PowerShellOnTargetMachines V1.*。在1.*中,我们支持参数 TaskContext Connection