使用.NET WebRequest将文件上载到sharepoint时出现409/Conflict HTTP错误的原因?

GR7*_*GR7 28 .net sharepoint webrequest httpwebrequest

我有一个方法,使用WebRequest将文件上传到sharepoint 2010列表/文件夹,使用PUT请求,并将Overwrite Header设置为T(覆盖).

当上载多个文件(多次调用方法)时,某些请求会因409 Conflict HTTP错误而失败.

我用google搜索,似乎最常见的原因是试图影响/更新不存在的文件(比如将请求URL设置为没有文件名的路径).但事实并非如此.如果冲突与已经存在的文件有关,我在上传之前添加了代码以物理删除文件,我仍然得到一些409.

有没有人收到过这种类型的错误,如果有的话,你能告诉我你是如何修复它的,根本原因是什么?任何帮助是极大的赞赏.谢谢

GR7*_*GR7 25

由于没有发布答案,我在此处找到以下内容:

Web服务器(运行Web站点)认为客户端提交的请求(例如您的Web浏览器或我们的CheckUpDown机器人)无法完成,因为它与已建立的某些规则冲突.例如,如果您尝试将文件上载到比已经存在的文件更旧的Web服务器,则可能会收到409错误,从而导致版本控制冲突.

在stackoverflow上就有类似问题的人说,答案是:

当我引用文档库的url而不是目标文件本身时,我遇到了这个问题.

即试试 http://server name/document library name/new file name.doc

但是我100%确定这不是我的情况,因为我多次检查了WebRequest的URI属性,并且URI完成了文件名,并且路径中的所有文件夹都存在于sharepoint站点上.

无论如何,我希望这有助于某人.


Dav*_*uki 5

有时,409当您使用保留或阻止的名称命名文件夹或文件时,会出现错误代码。这些名字可能是这样的registercontact

就我而言,我命名了一个文件夹contact,结果发现该名称被阻止用作文件夹名称。

在测试我的脚本时postman,我收到此错误:

<script>
    document.cookie = "humans_21909=1"; document.location.reload(true)
</script>
Run Code Online (Sandbox Code Playgroud)

我将文件夹名称从联系人更改为联系人,并且成功了。错误消失了。