2017-12-19 5 views
0

GetWorkItemsAsyncが1800の作業項目を取得すると失敗します。例:GetWorkItemsAsyncが1800の作業項目を取得すると失敗します

int[] ids = (from WorkItem info in wlinks select info.Id).ToArray(); 
WorkItemTrackingHttpClient tfvcClient = _tfs.GetClient<WorkItemTrackingHttpClient>(); 
List<Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models.WorkItem> dworkitems = tfvcClient.GetWorkItemsAsync(ids).Result; 

90要素のIDの配列を渡すと正常に動作します。

n個の要素しか取得できない制限はありますか。この問題をどのように解決できますか?

+0

明確な説明をあなたに「失敗」することができますか?エラーはありますか? – yakobom

+0

メッセージ:\t "1つ以上のエラーが発生しました。" \t \tソース\t System.Threading.Tasks.Task.ThrowIfExceptional(ブールincludeTaskCanceledExceptions)で "mscorlib" \t \t \tのStackTrace \t "\ rを\ nはSystem.Threading.Tasks.Task'1.GetResultCoreで(ブールwaitCompletionNotification)\ TestCaseExport.FrmMain.button1_Click(Object sender、EventArgs e)(C:\\ Users \\ Angolla \\ Source \\ Repos \)のSystem.Threading.Tasks.Task'1.get_Result()\ r \ \ TFSから作業項目をエクスポートする\\ TestCaseExport \\ FrmMain.cs:行4040 " –

+0

他の情報が必要な場合はお知らせください。 –

答えて

0

はい、URLの長さに制限があり、URLの長さを超えるとこの例外が発生します。

回避策として、一度に許可された範囲(一度に200 IDなど)に制限することができます。次に、クエリのために何回か呼び出します。

残念ながら、URLの長さに制限があります。 の長さを超えると、サーバーは切り捨てられたバージョン を取得するだけで、切り詰められた作業項目IDが有効ではない確率が高くなります。

一度に200のIDにコールを制限することをおすすめします。

ここ出典: https://github.com/Microsoft/vsts-dotnet-samples/issues/49

参考URLの長さの制限のため、このスレッド:What is the maximum length of a URL in different browsers?

ご参考のため、この同様のスレッド:Is there any restriction for number of characters in TFS REST API?

関連する問題