"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 时需要更加具体。
我正在尝试使用 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 时需要更加具体。