MS Office 使用 WebDAV 打开只读文档
MS Office opens documents readonly with WebDAV
我们实现了自己的 WebDAV 服务器。一些使用 Office(Word,Excel)的用户打开文档 read-only。接下来是有问题的计算机查询:
- OPTIONS http://pastie.org/10957339, response (after some chain of NTLM auth): http://pastie.org/10957337(与这些相同,问题不会重现)
- 得到
- 头部
- 头部
正常查询(在健康的计算机上)是:OPTIONS、HEAD、LOCK、GET...因此,Word 不会尝试锁定文档,而是以只读方式打开它。
我们已经尝试过:
- 已检查 WebDAV link,它是 e(如您在 OPTIONS 查询中所见)
- 已检查,OPTIONS 响应包含 header MS-Author-Via:DAV
- 已检查,该服务器没有崩溃。全部回复OK。
- 设置注册表项
HKEY_CURRENT_USER\Software\Microsoft\Office.0\Common\Internet\OpenDocumentsReadWriteWhileBrowsing
到 1 表示 here。
- 将注册表项
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\BasicAuthLevel
设置为 2,并将 HKEY_CURRENT_USER\Software\Microsoft\Office.0\Common\Internet\BasicAuthLevel
设置为 2,如 here 所述。
- 打开来自 https://www.ajaxbrowser.com 的文档 - 一切正常,文档打开 read-write。
- 清除IE中的cookies,登录IE(为MS Word提供cookies)
- 试图找出有问题的计算机和正常计算机之间的区别。在不同版本的 Office、不同版本的 Windows(7、8、10)、所有通过代理连接的计算机(健康的计算机)上重现问题。
- 清除
HKEY_CURRENT_USER\Software\Microsoft\Office\<version>\Common\Internet\Server Cache
中的键,如 here 所述。
有什么线索吗?为什么 Office 不尝试锁定文档?
您至少缺少 DAV header。将此包含在选项响应中:
DAV: 1,2
问题出在 MS Office 和代理服务器的交互上。当我们启动 fiddler(而不是 WireShark)时,它会创建用于捕获流量的本地代理,WebDAV 开始正常工作。
我们实现了自己的 WebDAV 服务器。一些使用 Office(Word,Excel)的用户打开文档 read-only。接下来是有问题的计算机查询:
- OPTIONS http://pastie.org/10957339, response (after some chain of NTLM auth): http://pastie.org/10957337(与这些相同,问题不会重现)
- 得到
- 头部
- 头部
正常查询(在健康的计算机上)是:OPTIONS、HEAD、LOCK、GET...因此,Word 不会尝试锁定文档,而是以只读方式打开它。
我们已经尝试过:
- 已检查 WebDAV link,它是 e(如您在 OPTIONS 查询中所见)
- 已检查,OPTIONS 响应包含 header MS-Author-Via:DAV
- 已检查,该服务器没有崩溃。全部回复OK。
- 设置注册表项
HKEY_CURRENT_USER\Software\Microsoft\Office.0\Common\Internet\OpenDocumentsReadWriteWhileBrowsing
到 1 表示 here。 - 将注册表项
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\BasicAuthLevel
设置为 2,并将HKEY_CURRENT_USER\Software\Microsoft\Office.0\Common\Internet\BasicAuthLevel
设置为 2,如 here 所述。 - 打开来自 https://www.ajaxbrowser.com 的文档 - 一切正常,文档打开 read-write。
- 清除IE中的cookies,登录IE(为MS Word提供cookies)
- 试图找出有问题的计算机和正常计算机之间的区别。在不同版本的 Office、不同版本的 Windows(7、8、10)、所有通过代理连接的计算机(健康的计算机)上重现问题。
- 清除
HKEY_CURRENT_USER\Software\Microsoft\Office\<version>\Common\Internet\Server Cache
中的键,如 here 所述。
有什么线索吗?为什么 Office 不尝试锁定文档?
您至少缺少 DAV header。将此包含在选项响应中:
DAV: 1,2
问题出在 MS Office 和代理服务器的交互上。当我们启动 fiddler(而不是 WireShark)时,它会创建用于捕获流量的本地代理,WebDAV 开始正常工作。