我尝试使用C#从SharePoint Online网站检索一些数据。我有两个不同的SharePoint网站(例如site1.sharepoint.com和site2.sharepoint.com)。我使用相同的代码来检索日期,并且可以从site1.sharepoint.com检索并且可以正常工作,但是无法从site2.sharepoint.com检索。
site1是我们的组织租户,这意味着安全设置已更改,而site2是默认设置(自创建以来未更改任何设置)。
问题可以出在站点1吗?如果可以,哪些设置可能会产生此类错误?
谢谢
private async Task<ListItemCollection> GetIntentFilterData(string url, string content, string columnName, string columnValue)
{
string siteUrl = url;
string login = _configuration["Login"];
string password = _configuration["Password"];
string listName = content;
try
{
using (ClientContext clientContext = new ClientContext(siteUrl))
{
clientContext.Credentials = new SharePointOnlineCredentials(login, password);
List oList = clientContext.Web.Lists.GetByTitle(listName);
CamlQuery camlQuery = new CamlQuery();
camlQuery.ViewXml = string.Format(@"<View>
<Query>
<Where>
<Contains>
<FieldRef Name='BaseName'/>
<Value Type='Lookup'>" + columnValue + @"</Value>
</Contains>
<FieldRef Name='EncodedAbsUrl'/>
<Value Type='Lookup'>" + columnValue + @"</Value>
</Where>
</Query>
</View>", "Some specific item");
ListItemCollection collListItem = oList.GetItems(camlQuery);
clientContext.Load(collListItem, items => items.Include(item => item["EncodedAbsUrl"], item => item["BaseName"]));
await clientContext.ExecuteQueryAsync(); // this line throws the exception.
return collListItem;
}
}
catch (Exception e)
{
// The error is "Value cannot be null.\r\nParameter name: key"
throw;
}
}
我期望从site2(文件列表)获得相同的结果。 我现在得到的结果是