我有一個自定義的WebDAV服務器,使用Sphoirum webdav服務器構建,駐留在ASP.NET MVC3應用程序中。這是一個.Net 4.0項目。Word 2010在保存到WebDAV服務器後報告錯誤
文檔庫是一個SharePoint,我們的MVC應用程序是它的前端,並通過WebDAV公開了整個事情。請注意,我們的IIS 7.5上沒有啓用WebDAV發佈。
我已經實現了以下HTTP動詞:
- 獲取
- 頭
- 鎖定
- 選項
- PROPFIND
- 將
- 解鎖
現在,當我打開一個word文檔時,它首先處於只讀模式。獲取該鎖,並進入編輯模式是成功的,但是當我要救我的文件中的變化,我得到如下:
您的更改保存,但因爲錯誤而無法上傳。
訣竅是,文件是確實正確保存到存儲庫,並從我們的WebDAV服務器來字的響應HTTP/200,但話語仍然抱怨。 我也嘗試直接從SharePoint存儲庫中編輯Word,只是爲了確認我的辦公室不會以某種方式破碎 - 所有的作品。
HTTP/1.1 200 OK
Date: Tue, 06 Sep 2011 12:25:47 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
MicrosoftSharePointTeamServices: 12.0.0.6545
Last-Modified: Tue, 06 Sep 2011 12:25:47 GMT
ETag: "{F4A63494-D302-4C9B-9C57-D0CB0937A2B0},9"
ResourceTag: rt:[email protected]
X-MSDAVEXTLockTimeout: Second-3600
Lock-Token: opaquelocktoken:{F4A63494-D302-4C9B-9C57-D0CB0937A2B0}20110906T122532Z
Expires: Mon, 22 Aug 2011 12:25:47 GMT
Cache-Control: private,max-age=0
Content-Length: 0
Public-Extension: http://schemas.microsoft.com/repl-2
Set-Cookie: WSS_KeepSessionAuthenticated=40689; path=/
而這裏的相同的響應,對於相同的文檔,從我們的WebDAV服務器:
HTTP/1.1 200 OK
Cache-Control: private,max-age=0
Content-Length: 0
Expires: Wed, 24 Aug 2011 08:03:28 GMT
Last-Modified: Wed, 07 Sep 2011 08:03:28 GMT
ETag: "{4a4331a8-7df6-43e6-bd5f-bb80765e83a2},1"
Server: Microsoft-IIS/7.5
MS-Author-Via: DAV
ResourceTag: rt:[email protected]
Lock-Token: opaquelocktoken:{4a4331a8-7df6-43e6-bd5f-bb80765e83a2}20110907T080328Z
X-MSDAVEXTLockTimeout: Second-3600
Public-Extension: http://schemas.microsoft.com/repl-2
MicrosoftSharePointTeamServices: 12.0.0.6545
Set-Cookie: WSS_KeepSessionAuthenticated=40689; path=/
X-Powered-By: ASP.NET
Date: Wed, 07 Sep 2011 08:03:27 GMT
所以我
這裏保存時從Word文檔的從PUT請求的響應我試圖模仿SharePoint發出的一些頭文件,如MicrosoftSharePointTeamServices,但無濟於事。
我知道鎖定令牌不符合RFC2518規範。到信,但我試圖使服務器與Office和SharePoint一起工作。所以,如果他們錯了,我也必須:) – Vanja
(一)你需要看看現在的RFC 4918。 (b)幾年前曾與通用WebDAV服務器合作的辦公室;也許他們打破了它,但在嘗試模仿Sharepoint之前,值得一試。 –
好點。我會看看它。問題是Sphorium實現了2518,但我有它的源代碼,所以應該可以添加更多的擴展。 – Vanja