"The object specified does not belong to a list" 使用 CSOM 时出错

"The object specified does not belong to a list" error using CSOM

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

但是当我通过 C++ 中的 com 互操作调用完全相同的方法时,使用相同的参数,我得到一个异常,"the specified object does not belong to a list"。在 ExecuteQuery()

之后抛出异常

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

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

 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":"The object specified does not belong to a list.","ErrorValue":null,"TraceCorrelationId":"c616a29d-90ab-3000-b1de-17538058f3e4","ErrorCode":-2146232832,"ErrorTypeName":"Microsoft.SharePoint.SPException" },"TraceCorrelationId":"c616a29d-90ab-3000-b1de-17538058f3e4"

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

我正在运行的测试有一个 url 的 "https://mysite.sharepoint.com/sites/develop_apps/" 。

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

并且我在“https://mysite.sharepoint.com/sites/develop_apps/

的库中进行所有列表操作

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