Sharepoint Foundation REST 接口,更新对象失败

Sharepoint Foundation REST interface, updating an object fails

我正在使用此处详述的 REST 界面 -https://docs.microsoft.com/en-us/previous-versions/office/developer/sharepoint-2010/ff521587(v%3Doffice.14)

作为概念证明,我正在尝试从我们的 Sharepoint 2010 内部网站访问列表中的项目并更新字段。

为此,我为端点 (AccountingWorkflowsDataContext) 创建了一个连接的 OData 服务,这是我的代码 -

var tasks = new AccountingWorkflowsDataContext(new Uri(
                    "https://mysite/_vti_bin/ListData.svc"));


tasks.Credentials = new NetworkCredential("username", "password", "domain");
var task = tasks.GLRecsTasks.Where(x => x.StatusValue != "Completed" && (x.AssignedToId == 1 || x.AssignedToId == 2)).First();

task.DueDate = DateTime.Now.AddDays(5);
tasks.UpdateObject(task);
tasks.SaveChanges();

我可以连接到列表并且我正在选择正确的项目并且我也在跟踪对其的更改,但是,对 SaveChanges 的调用总是失败并显示消息 "An error occurred while processing this request." 和 innner例外是 -

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
  <code></code>
  <message xml:lang="en-US">An error occurred while processing this request.</message>
</error>

有人可以解释一下吗。

我不得不使用 Managed Client Object Model 来完成这个。

我试图检索分配给特定用户的打开的工作流任务并将其分配给其他人,但出于某种原因,REST 界面在重新分配期间抛出错误。

这是我使用托管客户端对象模型的代码(尚未生产就绪,但可以从开始)

                using (ClientContext context = new ClientContext("siteURL"))
                {
                    context.FormsAuthenticationLoginInfo = new FormsAuthenticationLoginInfo("login", "password");

                    Web web = context.Web;
                    var result = context.Web.Lists.GetByTitle("TaskListName");

                    var query = new CamlQuery()
                    {
                        ViewXml =
                            "<View><Query><Where><And><Eq><FieldRef Name='Status' /><Value Type='Text'>Not Started</Value></Eq><Eq><FieldRef Name='AssignedTo' /><Value Type='User'>UserName</Value></Eq></And></Where></Query></View>"
                    };
                    var items = result.GetItems(query);
                    context.Load(items);
                    context.ExecuteQuery();

                    foreach (var item in items)
                    {
                        item["AssignedTo"] = new FieldUserValue() { LookupId = NewUserID };
                        item.Update();
                    }

                    context.ExecuteQuery();
                }