ReleaseManagement InitiateRelease REST API 调用 returns 500 错误

ReleaseManagement InitiateRelease REST API call returns 500 error

使用 Release Management,我正在尝试执行 Powershell 以使用 InitiateRelease REST 创建新版本 API。我在本地使用带有 RM 服务器的更新 4。

我得到的响应是 500 错误。在 RM 服务器上,没有错误记录。然而,Fiddler 提供了更多细节:

{"Message":"An error has occurred.","ExceptionMessage":"The given key was not present in the dictionary.", "ExceptionType":"System.Collections.Generic.KeyNotFoundException","StackTrace":" at System.Web.Http.ApiController.d__1.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__0.MoveNext()"}

这是我的PS1。

$releaseDefinition = "MyReleaseTemplateName"
$releaseName = $releaseDefinition + (Get-Date).DateTime

$deploymentPropertyBag = "{ 
                            ""MyComponentName:Build"" : ""MyBuildNumber"",
                            ""ReleaseName"" : ""$releaseName""                             
                         }"

$propertyBag = [System.Uri]::EscapeDataString($deploymentPropertyBag)

$url = "http://myserver:1000/account/releaseManagementService/_apis/releaseManagement/OrchestratorService/InitiateRelease?releaseTemplateName=" + $releaseDefinition + "&deploymentPropertyBag=" + $propertyBag + "&api-version=3.0"

Write-Host $url

$wc = New-Object System.Net.WebClient
$wc.UseDefaultCredentials = $true
$releaseId = $wc.UploadString($url,"")

我遇到的问题是 DeploymentPropertyBag 中的组件名称拼错了。

错误没有帮助所以我想我会在这里分享我的解决方案。