Ошибка TFS при попытке обновить рабочий элемент. В теле запроса необходимо передать действительный документ исправления.

Я получил эту ошибку - вы должны передать действительный документ исправления в теле запроса.

public class TFSClient
{
    public WorkItemTrackingHttpClient WorkItem { get; set; }
    public TFSClient()
    {            
        VssCredentials vssCred = new VssCredentials(new WindowsCredential(true));
        WorkItem = new WorkItemTrackingHttpClient(new Uri(TFSServer.Url), vssCred);
    }
}
 public static object UpdateWorkItemByID(int id)
    {
        try
        {
            JsonPatchDocument patchDocument = new JsonPatchDocument
            {
                new JsonPatchOperation()
                {                       
                    Operation = Operation.Add,
                    Path = ItemField.History,
                    Value = "Teste"
                }
            };            
            return  new TFSClient().WorkItem.UpdateWorkItemAsync(patchDocument, id).Result;              

        }

        catch (Exception e)
        {
            throw e;
        }
    }

OBS: Этот метод работал раньше, теперь я получаю эту ошибку, и я не знаю, почему.


person Henrique Lemos    schedule 29.03.2018    source источник
comment
ItemField.History, как называется имя ItemField   -  person Mukesh Agarwal    schedule 22.01.2019


Ответы (1)


Я предполагаю, что вы используете Newtonsoft.Json 11.0.1, так как я тоже получил такую ​​ошибку при использовании Newtonsoft.Json 11.0.1.

Эта проблема была исправлена ​​в Newtonsoft.Json 11.0.2, вы можете обновить Newtonsoft.Json до 11.0.2 и попробовать еще раз.

person Cece Dong - MSFT    schedule 30.03.2018
comment
Проверено, я использую Newtonsoft.Json 11.0.1, обновил его до 11.0.2 и теперь работает, спасибо. - person Henrique Lemos; 02.04.2018
comment
Я столкнулся с той же проблемой, а также решил ее обновить до 11.0.2 :) Спасибо! - person Shayki Abramczyk; 23.10.2018