MS Office 使用 WebDAV 打开只读文档

MS Office opens documents readonly with WebDAV

我们实现了自己的 WebDAV 服务器。一些使用 Office(Word,Excel)的用户打开文档 read-only。接下来是有问题的计算机查询:

  1. OPTIONS http://pastie.org/10957339, response (after some chain of NTLM auth): http://pastie.org/10957337(与这些相同,问题不会重现)
  2. 得到
  3. 头部
  4. 头部

正常查询(在健康的计算机上)是:OPTIONS、HEAD、LOCK、GET...因此,Word 不会尝试锁定文档,而是以只读方式打开它。

我们已经尝试过:

  1. 已检查 WebDAV link,它是 e(如您在 OPTIONS 查询中所见)
  2. 已检查,OPTIONS 响应包含 header MS-Author-Via:DAV
  3. 已检查,该服务器没有崩溃。全部回复OK。
  4. 设置注册表项 HKEY_CURRENT_USER\Software\Microsoft\Office.0\Common\Internet\OpenDocumentsReadWriteWhileBrowsing 到 1 表示 here
  5. 将注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\BasicAuthLevel 设置为 2,并将 HKEY_CURRENT_USER\Software\Microsoft\Office.0\Common\Internet\BasicAuthLevel 设置为 2,如 here 所述。
  6. 打开来自 https://www.ajaxbrowser.com 的文档 - 一切正常,文档打开 read-write。
  7. 清除IE中的cookies,登录IE(为MS Word提供cookies)
  8. 试图找出有问题的计算机和正常计算机之间的区别。在不同版本的 Office、不同版本的 Windows(7、8、10)、所有通过代理连接的计算机(健康的计算机)上重现问题。
  9. 清除 HKEY_CURRENT_USER\Software\Microsoft\Office\<version>\Common\Internet\Server Cache 中的键,如 here 所述。

有什么线索吗?为什么 Office 不尝试锁定文档?

您至少缺少 DAV header。将此包含在选项响应中:

DAV: 1,2

问题出在 MS Office 和代理服务器的交互上。当我们启动 fiddler(而不是 WireShark)时,它会创建用于捕获流量的本地代理,WebDAV 开始正常工作。