1

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,"")
4

1 に答える 1

2

私が直面していた問題は、DeploymentPropertyBag のコンポーネント名のスペルが間違っていたことです。

エラーは役に立たないので、ここで解決策を共有したいと思いました。

于 2015-02-27T07:33:28.537 に答える