GetWorkItemsAsync在检索1800个工作项时失败

时间:2017-12-19 08:06:22

标签: tfs

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个元素的Ids数组,它可以正常工作。

是否有任何限制只能获得n个元素,我们如何克服这个问题?

1 个答案:

答案 0 :(得分:1)

是的,URL长度有限制,一旦超过URL长度,它就会出现此异常。

因此,作为一种解决方法,您可以将呼叫限制为一次允许的范围(例如,每次200个ID)。然后多次调用查询。

  

不幸的是,您已经达到了URL长度的限制。一旦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?