У меня есть Список SharePoint, к которому я добавляю новый ListItems с помощью Модели Объекта клиента. Добавление ListItems не является проблемой и работает отлично.
Теперь я хочу прикрепить вложения.
Я использую SaveBinaryDirect следующим образом:
File.SaveBinaryDirect(clientCtx, url.AbsolutePath + "/Attachments/31/" + fileName, inputStream, true);
Это работает без любой проблемы пока объект, к которому я пытаюсь прикрепить вложение, уже имеет вложение, которое было прикреплено через сайт SharePoint и не использование Модели Объекта клиента.
Когда я пытаюсь прикрепить вложение к объекту, который еще не имеет никаких вложений, я получаю следующие ошибки (оба происходят, но не с теми же файлами - но те два сообщения последовательно появляются):
The remote server returned an error: (409) Conflict
The remote server returned an error: (404) Not Found
Я полагал, что, возможно, должен создать папку вложения сначала для этого объекта. Когда я пробую следующий код:
clientCtx.Load(ticketList.RootFolder.Folders);
clientCtx.ExecuteQuery();
clientCtx.Load(ticketList.RootFolder.Folders[1]); // 1 -> Attachment folder
clientCtx.Load(ticketList.RootFolder.Folders[1].Folders);
clientCtx.ExecuteQuery();
Folder folder = ticketList.RootFolder.Folders[1].Folders.Add("33");
clientCtx.ExecuteQuery();
Я получаю высказывание сообщения об ошибке:
Cannot create folder "Lists/Ticket System/Attachment/33"
Я имею полные права администратора для сайта/списка SharePoint.
Какие-либо идеи, что я мог делать неправильно?
Спасибо, Thorben
Я обсуждал этот вопрос с Microsoft. Похоже, что единственным способом удаленного создания вложений является веб-служба List.asmx. Я также пытался создать эту подпапку, но безуспешно.