2017-01-16 16 views
2

残りのAPIとpowershellを使用してTFS 2017オンプレミスサーバー上のチームに関連付けられている領域を設定しようとしています。私は本当に何を私にとSOMのガイダンスを使用することができ TFSチームの領域を設定する際のパラメータ 'patch'のArgumentNullException

 
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形式のパッケージでAPI exampleで説明したように、私のURI

http://MyTfsServer:8080/tfs/DefaultCollection/TeamProject/TeamName/_apis/Work/TeamSettings/TeamFieldValues?api-version=2.0-preview.1

を起動しようとすると、私は次のエラーリターンを得ます探しているはずです。私は自分のJsonパッケージを検証したし、それは整形式でなければならない。

 
{ 
    "defaultValue": "TeamProject\\Area1", 
    "Values": [ 
        { 
         "value": "Area2\\Area21\\Area211", 
         "includeChildren": false 
        }, 
        { 
         "value": "Area3\\Area31\\Area311", 
         "includeChildren": false 
        } 
       ] 

} 

更新

私はPowerShellの起動-RestMethodコマンドレット$setTeamAreaPathUriは、上記のhttp URIに対応

 
Invoke-RestMethod -Method Patch -Uri $setTeamAreaPathUri -UseDefaultCredentials -Body $json -ContentType "application/json" 

とURIの上に呼び出しています。私はpostをパッチとは対照的に私のウェブ要求方法として使用すべきですか?

getリクエストを使用して、同じURIからの応答を完全に得ることができます。しかし、

アップデート2

:-(パッチメソッドを使用して、既存のチーム・エリアを変更することができない。これは、エリア・パスに含まれているスカンジナビア文字「æøå」に関連したそうです。私はすべて除外した場合 jsonで解析する方法はありますか?そうすれば、TFSサーバーは壊れないでしょうか?これは、PowerShellの残りのAPIを呼び出す能力が不足しているためですか?

+0

invoke-webrequestコードを投稿してください。 ?あなたのJsonは有効ですが、構文解析は異なるようです。 –

+0

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-チームの設定を更新する設定。 –

+0

問題を再現できません。あなたの残りのAPIやJSONの本体をテストするために、郵便配達員のようなクライアントを試しましたか?また、 'Area2 \\ Area21 \\ Area211'の代わりに' \\ Area2'を試してください。 –

答えて

3

これはすべて特殊文字を含むエリアパスに関連しているようです。 æ、ø、åはスカンジナビアで主に使用されています。

-ContentType "application/json;charset=utf-8"として

を呼び出す-restmethodを呼び出すときに、私は私のコンテンツタイプを指定した場合、私はそう今までにAPIのパッチメソッドを呼び出して何の何の問題もありません。

ご迷惑をおかけして申し訳ありません。

ご協力いただきありがとうございます。

+0

共有してくれてありがとう。できたら、答えとしてマークすることができます。これはこのサイトの他の人を助ける。 –

0

この問題は再現できません。パッチオブジェクトがnullであるために起こっているようです。あなたはapiをテストするために郵便配達員とこれを試してみましたか?また、デフォルト値はチームの許可されたチームフィールド値の1つでなければなりません。

関連する問題