2015-07-02 2 views
2

Я пытаюсь получить все элементы из библиотеки ресурсов видео в SharePoint 2013 с использованием CSOM на C#. Когда я бег моего консольного приложения я иногда появляюсь следующее сообщение об ошибке:«Уже существует» Исключение, возникающее при получении элементов библиотеки SharePoint 2013 с использованием CSOM

Microsoft.SharePoint.Client.ServerException: A list, survey, discussion board, or document library with the specified title already exists in this Web site. Please choose another title. 

Я искал ошибки, но вопросы, которые я нашел, были с созданием списка или обновления элементов. Я только пытаюсь получить предметы. Библиотека загружается просто в браузере. Кроме того, у меня есть веб-страница, которая работает с тем же кодом, что и мое консольное приложение, и это не вызывает исключения. Вот блок кода, который бросает исключение:

ClientContext context = new ClientContext(SharePointURL); 

       List AssetList = context.Web.Lists.GetByTitle(SharePointListTitle); 

       context.Load(AssetList); 

       CamlQuery query = CamlQuery.CreateAllItemsQuery(); 
       ListItemCollection items = AssetList.GetItems(query); 

       //Retrieve all items in the ListItemCollection from List.GetItems(Query). 
       context.Load(items, 
        itms => itms.Include(
         i => i["GUID"], 
         i => i["Title"], 
         i => i["FileLeafRef"], 
         i => i["FileRef"], 
         i => i["VideoSetDescription"], 
         i => i["Live_x0020_Date"], 
         i => i["Expiration_x0020_Date0"], 
         i => i["Is_x0020_Active"], 
         i => i["Tags"], 
         i => i["AlternateThumbnailUrl"] 
         ) 
        ); 

       context.ExecuteQuery(); 

ответ

1

Я на мобильный телефон прямо сейчас, так что я не могу легко проверить это для вас, но я считаю, что вам нужно сделать context.ExecuteQuery() после загрузки AssetList, а также.

Это позволило бы сделать свой источник:

ClientContext context = new ClientContext(SharePointURL); 

List AssetList = context.Web.Lists.GetByTitle(SharePointListTitle); 

context.Load(AssetList); 
context.ExecuteQuery(); 

CamlQuery query = CamlQuery.CreateAllItemsQuery(); 
ListItemCollection items = AssetList.GetItems(query); 

//Retrieve all items in the ListItemCollection from List.GetItems(Query). 
context.Load(items, 
    itms => itms.Include(
     i => i["GUID"], 
     i => i["Title"], 
     i => i["FileLeafRef"], 
     i => i["FileRef"], 
     i => i["VideoSetDescription"], 
     i => i["Live_x0020_Date"], 
     i => i["Expiration_x0020_Date0"], 
     i => i["Is_x0020_Active"], 
     i => i["Tags"], 
     i => i["AlternateThumbnailUrl"] 
     ) 
    ); 

context.ExecuteQuery(); 

Позвольте мне знать, если это не так, и я буду тянуть проект, в котором я сделал что-то подобное когда-то обратно на рабочий стол.

Смежные вопросы