Dot-Net

使用 .NET WebRequest 將文件上傳到共享點時出現 409/衝突 HTTP 錯誤的原因?

  • July 22, 2011

我有一種方法,它使用 WebRequest 使用 PUT 請求將文件上傳到 sharepoint 2010 列表/文件夾,並將 Overwrite Header 設置為 T(覆蓋)。

當上傳多個文件時(方法被多次呼叫),一些請求失敗並出現 409 Conflict HTTP 錯誤。

我用Google搜尋過,似乎最常見的原因是試圖影響/更新一個不存在的文件(比如將請求 URL 設置為沒有文件名的路徑)。然而,事實並非如此。如果衝突與已經存在的文件有關,我在上傳之前添加了程式碼以物理刪除文件,我仍然得到一些 409。

有沒有人收到過這種類型的錯誤,如果有,你能告訴我你是如何修復它的嗎?根本原因是什麼?任何幫助是極大的讚賞。謝謝

由於沒有發布答案,我在這裡找到了以下內容:

Web 伺服器(執行網站)認為客戶端(例如您的 Web 瀏覽器或我們的 CheckUpDown 機器人)送出的請求無法完成,因為它與已建立的某些規則衝突。例如,如果您嘗試將文件上傳到比已有文件更舊的 Web 伺服器,您可能會收到 409 錯誤,從而導致版本控制衝突。

有人在stackoverflow 上提出類似問題,他說答案是:

當我引用文件庫的 url 而不是目標文件本身時,我遇到了這個問題。

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

但是我 100% 確定這不是我的情況,因為我多次檢查了 WebRequest 的 URI 屬性並且 URI 包含文件名,並且路徑中的所有文件夾都存在於共享點站點上。

無論如何,我希望這對某人有所幫助。

引用自:https://stackoverflow.com/questions/6785036