微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CSOM 返回“尝试的操作被禁止,因为它超出了列表视图阈值”如果返回多个结果 -SP Online

如何解决CSOM 返回“尝试的操作被禁止,因为它超出了列表视图阈值”如果返回多个结果 -SP Online

我有扫描包含 InfoPath 表单列表的文档库的代码。它使用带有 caml 查询的 CSOM 来获取它需要使用的特定表单。我已经让这段代码运行了多年,没有出现任何问题。今天,我开始收到错误“尝试的操作被禁止,因为它超出了列表视图阈值。”

这是 SharePoint Online,我知道列表视图阈值为 5000。我们的列表中确实有 5000 多个项目,并且有一段时间了。 我尝试检索的结果应该带回大约 10 个表单;远低于 5000 项阈值。 查询的两个字段都已编入索引。

ListItemCollection spList = clientContext.Web.Lists
    ?.GetByTitle(libName)
    ?.GetItems(new CamlQuery
    {
       ViewXml = "<View><Query><Where><And><Eq><FieldRef Name=\"Field1\"/><Value Type=\"Text\">No</Value></Eq><Eq><FieldRef Name=\"Field2\"/><Value Type=\"Text\">No</Value></Eq></And></Where></Query></View>"
    });
clientContext.Load(spList);

clientContext.Load(spList,items => items.Include(
    item => item.ContentType,item => item.displayName,item => item.ContentType.Fields,item => item.Folder,item => item.Folder.Files,item => item.File.ListItemAllFields,item => item.FileSystemObjectType,item => item.File,item => item.File.Author,item => item.File.ServerRelativeUrl
));
clientContext.SendRequest();

在测试问题时,我发现我可以通过 ID 检索一个项目

"<View><Query><Where><Eq><FieldRef Name='ID' /><Value Type='Number'>16134</Value></Eq></Where></Query></View>"

但是,当尝试使用 Or 并包含两个 ID 时,我再次收到错误消息。

"<View><Query><Where><Or>" + 
"<Eq><FieldRef Name='ID' /><Value Type='Number'>6001</Value></Eq>" + 
"<Eq><FieldRef Name='ID' /><Value Type='Number'>6002</Value></Eq>" + 
"</Or></Where></Query></View>"

似乎阈值现在表现得好像是一。我不确定这是否是由于我查询数据的方式以及出于某种原因返回了所有结果,或者是否存在内部错误

我的第一个想法是 Microsoft 方面出了点问题,但我在健康中心或其他任何地方都没有提到。

是否有任何已知的可能导致此问题的原因以及有关如何纠正问题的任何建议?可能是 MS 最近的变化或折旧?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。