Release Management を使用して、Powershell を実行し、InitiateRelease REST API を使用して新しいリリースを作成しようとしています。オンプレミスの RM Server で Update 4 を使用しています。
私が得る応答は500エラーです。RM サーバーでは、ログに記録されたエラーはありません。ただし、Fiddler はもう少し詳細を提供します。
{"メッセージ":"エラーが発生しました。","ExceptionMessage":"指定されたキーが辞書にありませんでした。", "ExceptionType":"System.Collections.Generic.KeyNotFoundException","StackTrace":" at System.Web.Http.ApiController.d__1.MoveNext()\r\n--- 例外がスローされた前の場所からのスタック トレースの終わり ---\r\n System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) で\r\n 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,"")