Как исправить 'Значение не может быть нулевым.Имя параметра: ключ 'исключение при использовании CSOM в SharePoint Online - PullRequest
1 голос
/ 29 сентября 2019

Я пытаюсь получить некоторые данные с сайта SharePoint Online с помощью C #.У меня есть два разных сайта SharePoint (например, site1.sharepoint.com и site2.sharepoint.com).Я использую тот же код для получения даты, и я могу получить с site1.sharepoint.com и работает отлично, но я не могу получить с site2.sharepoint.com.

Site1 - это клиент нашей организации, что означает настройки безопасностибыли изменены, в то время как site2 по умолчанию (настройки не были изменены с момента его создания).

Может ли быть проблема с site1?Если да, то какие настройки могут вызвать такую ​​ошибку?

Спасибо

    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 (список файлов).Результат, который я получаю сейчас -

...