使用workitemtrackinghttpclient更新VSTS中的工作项c#

时间:2018-03-16 14:37:45

标签: c# .net azure-devops

我遇到了Microsoft.TeamFoundation.WorkItemTracking.WebApi.WorkItemTrackingHttpClient类的问题。 我无法在我的VSTS中更新工作项,因为该类在http补丁请求中发送空体。我做错了吗?

测试代码:

private readonly WorkItemTrackingHttpClient _workItemTrackingHttpClient;
public RestApi(string baseUrl, string pat)
{
    var vssConnection = new VssConnection(new Uri(baseUrl), new VssBasicCredential(string.Empty, pat));

    _workItemTrackingHttpClient = vssConnection.GetClient<WorkItemTrackingHttpClient>();

    var document = new JsonPatchDocument();
    document.Add(new JsonPatchOperation()
    {
        Operation = Operation.Add,
        Path = "/fields/Microsoft.VSTS.Scheduling.Effort",
        Value = 1
    });

    var workItem = _workItemTrackingHttpClient.UpdateWorkItemAsync(document, 233843).Result;
}

抛出: VssServiceException:您必须在请求正文中传递有效的补丁文档。

我使用Fiddler分析请求,发现正文是空的。奇怪的是它在二月份有效。

Raw http patch request screen

2 个答案:

答案 0 :(得分:0)

我假设你使用的是Newtonsoft.Json 11.0.1,因为我在使用Newtonsoft.Json 11.0.1时遇到了这样的错误。我已在下面的网站上提交了反馈,并等待回复:

https://developercommunity.visualstudio.com/content/problem/212774/api-that-update-a-work-item-field-doesnt-work-with.html

作为解决方法,请尝试使用Newtonsoft.Json 10.0.3。

答案 1 :(得分:0)

<强>更新

Newtonsoft.Json已更新至11.0.2。遇到上述问题后,我将软件包更新到最新版本,问题已解决。