Сохранение в SharePoint через редиректор WebDAV. Получение нового идентификатора объекта и потеря истории версий - PullRequest
2 голосов
/ 03 марта 2009

Я использую редиректор WebDAV для редактирования файла в репозитории SharePoint. Похоже, что каждый раз, когда я сохраняю файл таким образом, я получаю новый объект, который заменяет предыдущий. Это приводит к потере всей истории версий.

Открытие файла осуществляется через CreateFile с помощью:

имя файла - то же самое, что используется для вызова только для чтения CreateFile (который работает)

DesiredAccess: GENERIC_READ | GENERIC_WRITE

dwShareMode: FILE_SHARE_READ SecurityHandle: длина установлена, но 2 других поля равны 0

dwCreationDisposition: OPEN_EXISTING dwFlagsAndAttributes: FILE_ATTRIBUTE_NORMAL

hTemplateFile: NULL

После того, как я запишу файл в дескриптор, возвращенный этим вызовом, если я получу элемент списка для этого файла, номер объекта (ID =) будет увеличен. Кроме того, этот идентификационный номер, кажется, добавляется к каждому из полей в элементе списка (отделенных от фактических данных последовательностью «#;»)

Это увеличение идентификационного номера (и потеря истории версий) не произойдет, если я проверю, отредактирую, а затем вернусь, используя веб-интерфейс; он сохраняет тот же идентификатор, а история версий остается без изменений.

Как я могу избежать этого? Я должен хранить историю версий.

Ответы [ 2 ]

1 голос
/ 03 марта 2009

Я бы порекомендовал получить трассировку HTTP.

Вероятно, он покажет, что перенаправитель использует временный файл, а затем переместит его поверх исходного файла.

Исправлено: используйте более умный клиент WebDAV (возможно, лучше использовать диск Xythos).

0 голосов
/ 03 марта 2009

Используя WebDav, вы обходите среду выполнения SharePoint, поэтому вы. чтобы получить историю версий, вы должны использовать SharePoint apis (веб-сервисы или OM)

...