Причины ошибки HTTP 409/Conflict при загрузке файла в sharepoint с помощью .NET WebRequest?
У меня есть метод, который использует WebRequest для загрузки файла в список/папку sharepoint 2010, используя запрос PUT, с заголовком Overwrite Header, установленным в T (перезаписывать).
Когда несколько файлов загружаются (метод вызывается несколько раз), некоторые запросы терпят неудачу с ошибкой HTTP 409 Conflict.
Я искал googled, и кажется, что наиболее распространенная причина заключается в попытке повлиять на/обновить файл, который не существует (например, установить URL-адрес запроса на путь без имени файла). Однако это не так. Если конфликт имел какое-то отношение к уже существующему файлу, я добавил код, чтобы физически удалить файл перед его загрузкой, и я все еще получаю около 409.
Кто-нибудь получил этот тип ошибок, и если да, можете ли вы рассказать мне, как вы его исправили и какова была основная причина? Любая помощь приветствуется. Благодаря
Ответы
Ответ 1
Поскольку ответов не было, я нашел здесь следующее:
Веб-сервер (работающий на веб-сайте) считает, что запрос, отправленный клиентом (например, вашим веб-браузером или нашим роботом CheckUpDown), не может быть выполнен, поскольку он конфликтует с каким-то уже установленным правилом. Например, вы можете получить ошибку 409, если попытаетесь загрузить файл на веб-сервер, который старше, чем тот, который уже существует, что приведет к конфликту управления версиями.
Кто-то, находящийся на fooobar.com/questions/302940/..., сказал:
У меня была эта проблема, когда я ссылался на URL библиотеки документов, а не на сам файл назначения.
т.е. попробуйте http://server name/document library name/new file name.doc
Однако я на 100% уверен, что это был не мой случай, так как я несколько раз проверял свойство URI WebRequest, и URI был полон имени файла, и все папки в пути существовали на сайте sharepoint.
В любом случае, я надеюсь, что это кому-то поможет.
Ответ 2
Я нашел 2 вещи, которые стоит упомянуть при загрузке файлов с помощью webdav и http-запроса. Во-первых, для провайдера, которого я использовал, мне пришлось добавить имя файла в конце URL-адреса провайдера. Я хотел добавить номер порта в URL. И я также установил метод Request для PUT вместо POST.
Пример:
string webdavUrl = "https://localhost:443/downloads/test.pdf";
request.Method = "PUT";
Ответ 3
Мы также получаем ту же ошибку, когда мы пытаемся получить доступ к одному и тому же ресурсу в миллисекундах. Например, если я пытаюсь выполнить POST
некоторые данные в www.abc.com/blog
, а в миллисекундах другой запрос будет также поступать для того же ресурса, то есть www.abc.com/blog
от того же пользователя. Таким образом, это приведет к ошибке 409
.
Ответ 4
Я столкнулся с подобной проблемой при загрузке файла вернул 409.
Помимо упомянутых выше проблем, это также может произойти из-за ограничений размера файла для POST на стороне сервера. Например, tomcat (веб-сервер Java) по умолчанию имеет ограничение размера POST 2 МБ.
Ответ 5
Я получил эту ошибку при попытке создать папку http://localhost: 8080/repository/default/parent/newFolder, когда http://localhost: 8080/repository/default/parent не существует.
Ответ 6
проблема с конфликтом 409, возникающая на странице оповещения моего сайта " Индикатор бустера" в Индии, помогите мне решить эту ошибку.