使用 CSOM 出现“指定的对象不属于列表”错误

Dan*_*n G 2 csom sharepoint-online

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

但是当我通过 C++ 中的 com 互操作调用完全相同的方法时,使用相同的参数,我得到一个异常,“指定的对象不属于列表”。在 ExecuteQuery() 之后抛出异常

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

我读过有关类似错误的文章,它们似乎可能与网址有关。但我不明白为什么相同的参数在一种情况下有效,而在另一种情况下无效。

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

错误显示的提琴手跟踪。

{ "SchemaVersion":"15.0.0.0","LibraryVersion":"16.0.5701.1202","ErrorInfo":{ "ErrorMessage":"指定的对象不属于列表。","ErrorValue":null," TraceCorrelationId":"c616a29d-90ab-3000-b1de-17538058f3e4","ErrorCode":-2146232832,"ErrorTypeName":"Microsoft.SharePoint.SPException" },"TraceCorrelationId":"c6190a5b39d0

Dan*_*n G 5

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

我正在运行的测试的网址为“ https://mysite.sharepoint.com/sites/develop_apps/ ”。

我的生产测试未通过“ https://mysite.sharepoint.com

我在“ https://mysite.sharepoint.com/sites/develop_apps/ ”的库中进行所有列表操作

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