如何修正'值不能为空。参数名称:在SharePoint Online中使用CSOM的“关键”例外

时间:2019-09-28 21:21:15

标签: c# sharepoint sharepoint-online

我尝试使用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(文件列表)获得相同的结果。 我现在得到的结果是

0 个答案:

没有答案