2016-11-07 180 views
2

我們實現了我們自己的WebDAV服務器。一些擁有Office(Word,Excel)的用戶以只讀方式打開文檔。上問題的計算機查詢是下一個:微軟Office使用WebDAV打開文件只讀

  1. OPTIONS http://pastie.org/10957339,響應(NTLM AUTH的一些鏈後):http://pastie.org/10957337(等於這些的,其中問題不再現)
  2. GET
  3. HEAD
  4. HEAD

普通查詢(在健康的計算機上)有:OPTIONS,HEAD,LOCK,GET ...因此,Word不會試圖鎖定文檔,並且只能以只讀方式打開它。

我們已經嘗試過:

  1. 經過WebDAV的鏈接,它是Ë的(你可以在選項中查詢看到)
  2. 經過,該響應中包含頭MS-作者 - 通過:DAV
  3. 檢查,該服務器不會崩潰。所有回覆都可以。
  4. 將註冊表項 HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\Internet\OpenDocumentsReadWriteWhileBrowsing設置爲1,如所述here
  5. 將註冊表項HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\BasicAuthLevel設置爲2,將HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Common\Internet\BasicAuthLevel設置爲2,作爲所述here
  6. 從​​打開文檔 - 一切正常,文檔以讀寫形式打開。
  7. 在IE中清除cookie,在IE中登錄(爲MS Word提供cookie)
  8. 試圖發現有問題的計算機和健康計算機之間的差異。在不同版本的Office,不同版本的Windows(7,8,10)上重現問題,通過代理連接的所有計算機(也是健康的)。
  9. Сlearkeys HKEY_CURRENT_USER\Software\Microsoft\Office\<version>\Common\Internet\Server Cache as here

有什麼線索嗎?爲什麼Office不試圖鎖定文檔?

+0

@DirkVollmar之後,第一個OPTIONS請求正在進行GET。 GET是好的,但它已經意味着,該文檔只是只讀,因爲LOCK沒有執行。我將OPTIONS響應與工作響應進行了比較,沒有發現差異。有關工作應用(在我的開發PC上)的[響應](http://pastie.org/10958933),您可以將其與客戶端進行比較,它們是相同的。 – Pavel

+0

什麼是OPTIONS請求的完整迴應?您還可以發送PROPFIND請求的HTTP請求和響應嗎? – Evert

+0

@Evert寫在帖子中,回覆是[this](http://pastie.org/10957337)。如果不匹配,PROFIND通常會在保存前發生。我們不會保存文件,因爲它是隻讀的。無論如何,我會看到明天,如果有任何PROFIND存在。 – Pavel

回答

0

問題出在MS Office和代理服務器的交互中。當我們開始小提琴手(而不是WireShark)時,它創建了用於捕捉流量的本地代理,WebDAV開始正常工作。

2

您至少缺少DAV標頭。在OPTIONS響應中包括:

DAV: 1,2 
+0

有趣。文檔[說](https://msdn.microsoft.com/en-us/library/aa142827(v = exchg.65).aspx),類'2'表示允許LOCK方法。看起來有希望,我會嘗試... – Pavel

+0

@Pavel不讀微軟文檔。閱讀[標準](http://tools.ietf.org/html/rfc4918)。 – Evert

+0

我同意微軟的文檔在很大程度上沒有幫助或者根本沒用。但是,由於MS經常會添加額外的怪癖(我錯過了_MS-Author-Via_頭文件),並且要讓Word一起玩,我們不會真正解決。 – Michael