我試圖設置與使用其餘API和PowerShell的TFS 2017內部部署服務器上的團隊相關聯的區域。爲TFS團隊設置區域時參數'patch'的ArgumentNullException
當我嘗試調用我的URI
在API example用JSON包作爲解釋,我收到以下錯誤返回:
Invoke-RestMethod : {"$id":"1","innerException":null,"message":"Value cannot be null. \r\nParameter name: patch","typeName":"System.ArgumentNullException, mscorlib, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", "typeKey":"ArgumentNullException","errorCode":0,"eventId":0} + ... $result = Invoke-RestMethod -Method Patch -Uri $setTeamAreaPathUri ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand我真的可以使用索姆指導,以什麼我應該尋找。我已經驗證了我的Json包,它應該是格式良好的。
{ "defaultValue": "TeamProject\\Area1", "Values": [ { "value": "Area2\\Area21\\Area211", "includeChildren": false }, { "value": "Area3\\Area31\\Area311", "includeChildren": false } ] }
更新
我與PowerShell的調用,RestMethod cmdlet的
Invoke-RestMethod -Method Patch -Uri $setTeamAreaPathUri -UseDefaultCredentials -Body $json -ContentType "application/json"
凡$setTeamAreaPathUri
對應於上述HTTP URI調用上面的URI。我應該使用post
作爲我的webrequest方法而不是補丁嗎?
我完全能夠使用get請求從相同的URI獲得響應。但是,不能更改使用補丁方法現有團隊區域:-(
更新2
這似乎與斯堪的納維亞字符「æøå」被包括在區域路徑,如果我排除一切包括æ,ø或å的區域路徑,我沒有錯誤,從我的例子中並不明顯......對不起! 有沒有辦法在json中解析,這樣TFS服務器就不會中斷它了?或者,這是因爲我缺乏PowerShell rest api調用的效率?
請問您可以發佈您的invoke-webrequest代碼。 ?我們的Json是有效的,但解析似乎不同。 –
您的API示例鏈接應該是https://www.visualstudio.com/en-us/docs/integrate/api/work/team-field-values#update-team-field-values而不是https://www.visualstudio .com/en-us/docs/integrate/api/work/team-settings#update-a-teams-settings更新團隊設置。 –
無法重現您的問題,您是否嘗試了一些其他客戶端,如郵遞員來測試您的休息api和json body?還可以嘗試用'\\ Area2'而不是'Area2 \\ Area21 \\ Area211' –