"指定的对象不属于列表"使用CSOM时出错

时间:2016-09-09 14:18:18

标签: sharepoint-online csom

我正在尝试使用c#中的.NET CSOM在线获取Sharepoint上的文件的父列表。当我从一个独立的c#app测试它时,下面的代码工作正常。

但是当我通过c ++中的com interop调用完全相同的方法时,使用相同的参数,我得到一个异常,"指定的对象不属于列表"。在ExecuteQuery()

之后抛出异常

但是我知道它确实如此,如果我使用完全相同的URL调用该方法" / sites / develop_apps / Shared Documents / subway / heynow(000640-9-9-2016 9-53-31 AM)。 PDF"在一个独立的c#app中,我也不例外。 " GetFileByServerRelativeUrl"似乎工作正常。它无论如何也不会抛出异常。

我已经阅读过有关类似错误的文章,他们似乎与网址有关。但我无法理解为什么同一个参数在一个上下文中起作用而不是另一个上下文。

 Microsoft.SharePoint.Client.File thisFile =m_clientContext.Web.GetFileByServerRelativeUrl(fileRelativeUrl);
ListItem item = thisFile.ListItemAllFields;
m_clientContext.Load(item.ParentList);
m_clientContext.ExecuteQuery();

Fiddler跟踪错误显示。

{ " SchemaVersion":" 15.0.0.0"" LibraryVersion":" 16.0.5701.1202"" ERRORINFO" :{ " ErrorMessage":"指定的对象不属于列表。"," ErrorValue":null," TraceCorrelationId":&# 34; c616a29d-90ab-3000-b1de-17538058f3e4""错误码": - 2146232832" ErrorTypeName":" Microsoft.SharePoint.SPException" }," TraceCorrelationId":" c616a29d-90ab-3000-b1de-17538058f3e4"

1 个答案:

答案 0 :(得分:3)

通过比较工作应用程序的ClientContext.Url字段和生产测试失败,我注意到网址不同。

我的测试工作有一个" https://mysite.sharepoint.com/sites/develop_apps/" 。

我的生产测试未能实现" https://mysite.sharepoint.com"

我在" https://mysite.sharepoint.com/sites/develop_apps/"

的库中进行了所有列表操作

我想在针对列表进行工作时,您需要在创建有关url的clientContext时更具体。