2016-11-07 392 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