2017-06-01 6 views
0

公式のMicrosoft文書に従ってTFS APIを使用してTFSの作業項目のフィールド(/fields/System.Description)を更新しようとしています。ページに記載されているサンプルコードを使用している場合、「更新作業項目」には何か問題があります。特定のフィールドを「追加」または「置換」したい場合は、返されるステータスコードは500ですが、値を "テスト"したい、誰でも私にいくつかの助けてくれますか?作業項目(HTTPステータス500)の更新に関するTFS APIを使用するとエラーが発生する

{のStatusCode:500、のreasonPhrase: '内部サーバーエラー' バージョン:1.1、 内容:

using System; 
using System.Net; 
using System.Net.Http; 
using System.Net.Http.Headers; 
using System.Text; 

using Newtonsoft.Json; 

public static void UpdateWorkItemUpdateField() 
    { 
     string _personalAccessToken = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; 
     string _credentials = Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1}", "", _personalAccessToken))); 
     string _id = "111"; 

     Object[] patchDocument = new Object[1]; 

     patchDocument[0] = new { op = "replace", path = "/fields/System.Description", value = "Changing the description done" }; 


     using (var client = new HttpClient()) 
     { 
      client.DefaultRequestHeaders.Accept.Clear(); 
      client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); 
      client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", _credentials); 

      var patchValue = new StringContent(JsonConvert.SerializeObject(patchDocument), Encoding.UTF8, "application/json-patch+json"); // mediaType needs to be application/json-patch+json for a patch call 
      var method = new HttpMethod("PATCH"); 
      var request = new HttpRequestMessage(method, "http://mysite:8080/tfs/MyCollection/_apis/wit/workitems/" + _id + "?api-version=1.0") { Content = patchValue }; 
      var response = client.SendAsync(request).Result; 

      if (response.IsSuccessStatusCode) 
      { 
       var result = response.Content.ReadAsStringAsync().Result; 
      } 
     } 
    } 

、ここでは、リターン・ステータスですSystem.Net.Http.StreamContent、ヘッダ: {プラグマ:ノーキャッシュ X-TFS-PROCESSID:XXXXXXXXXXXXXXXX X-FRAME-OPTIONS:SAMEORIGIN X-VSS-UserDataを:xxxxxxxxxxxxxxxxxxxxxxxxxx:XXXXXのActivityID: xxxxxxxxxxxxxxxxxxxxxxxxxxxx X-TFSセッション:xxxxxxxxxxxxxxxxx LFS-認証:NTLM X-コンテンツタイプ - オプション:nosniff キャッシュコントロール:no-cache日付:2011年6月1日06:50:04 GMT P3P: CP = "CAO DSP COR ADAMA DEV CONO TELO CUR PSA PSD TAI IVDO私たちのサウスバス DEM NAV STA UNI COM INT PHY ONL FIN PUR LOC CNT "サーバー: Microsoft-IIS/7.5 X-AspNet-バージョン:4.0.30319 X-Powered-By:ASP.NET コンテンツの長さ:428コンテンツタイプ:application/json;文字セット= UTF-8 有効期限:-1}}

+0

上記のコードをテストしましたが正しいです。イベントビューアで他のエラーログを見つけることができますか? 500エラーが発生した理由はたくさんあります。 TFSサーバーで[基本認証](https://github.com/Microsoft/tfs-cli/blob/master/docs/configureBasicAuth.md)を有効にしましたか?あなたはTFS 2017を使っていますか? –

+1

@ Tingting0929-MSFTステータスコードは現在200ですが、今日は何もしませんでした。なぜ私はそれが何の操作なしで働いたのか分かりませんが、最近あなたの親切に助けてくれてありがとう。私は可能な問題を突き止めるためにさらにテストする必要があるかもしれません。 – RickyXRQ

答えて

0

を私は同じ要求を作成しようとしましたが、URLのみでMyCollection部分がなく、それが働きました。

自分でやろうとします。 Danny

+0

ステータスコードは現在200ですが、今日は何もしませんでした。私はそれが何の操作もなく働いた理由を知らないが、あなたの親切な助けに感謝します。私は可能な問題を突き止めるためにさらにテストする必要があるかもしれません。 – RickyXRQ

関連する問題