阻止Microsoft Office 2010与Subversion服务器集成,就像它是Sharepoint


11

我们有一个Apache Subversion服务器,我们将存储(除其他事项外)所有文档。svn中有很多Word,Excel,PDF等文档,并且我们所有的用户都使用TortoiseSVN作为其客户端界面。这些用户中的许多人还将通过Web浏览器浏览该存储库(不幸的是,该浏览器通常是Internet Explorer)。

最近,我们开始试用Office 2010(从2003年开始),发现使用IE浏览时,来自回购协议的文档的打开方式有所不同。而不是IE下载文件,然后将其发送到适当的应用程序(之后它应该只是本地存储的临时副本),而是将文档的URL发送到应用程序。该应用程序下载了该文档,然后将其视为来自Sharepoint服务器,即该应用程序尝试将其锁定,然后将所有保存的更改自动上传回服务器。

从Googling看来,许多人都想要这种行为。但是,我们要禁用它-它不适合我们现有的流程。我该怎么做呢?

我对客户端计算机没有太多控制权,因此,我所寻找的解决方案不是为每个客户端禁用像这样的所有Office文档协作功能。此外,除了禁用IE中的Office Document Cache Handler加载项外,我无能为力。唯一可行的客户端选项是那些专门为我们的命名服务器禁用此功能而将其保留给其他服务器的选项。

这样就剩下服务器端解决方案了。我猜测Office认为svn服务器具有WebDAV支持,因此进入了类似Sharepoint的文档管理工作流程。是否有任何方法可以在不禁用服务器上所有WebDAV支持的情况下停止这种集成(假设我们甚至可以这样做)?实际上,我们实际上将svn的autoversioning用于其他目的,因此这是必需的功能。我发现了有关禁用功能的讨论,如果该功能实际上是Sharepoint服务器,则不是!我对这种工作方式的理解(即Office客户端标识服务器上的WebDAV支持)非常有限,因此,请尽您所能。

如果很重要,则服务器设置为:

Ubuntu Hardy 8.04上的Apache v2.2.8和Subversion v1.4.6。


我不能以此为答案,因为这更麻烦。我认为您对DFAV是正确的,因为Apache / SVN使用DAV作为其访问协议。考虑到这一点,您可以删除Apache并svnserve改为使用。
SmallClanger

感谢您的建议,但svnserver不是我们的选择。我们使用Apache依赖于我们很多定制。
詹姆斯·提萨托

我从MS那里找到了一篇非常有用的文章(我很惊讶!):support.microsoft.com/kb/838028 看来Apache服务器通过其HTTP 1.1 OPTIONS答复表明它能够进行WebDAV操作,因此Office使用它们。该死的选项在哪里说:“我希望我的服务器具有WebDAV,但我不希望Office使用它?!”
James Tisato

Answers:


13

解决(最终)。http://support.microsoft.com/kb/838028解释了Office如何使用Microsoft Office Protocol Discovery来确定文档服务器是否具有WebDAV功能。它发送HTTP 1.1 OPTIONS请求,并期望200 OK答复,详细说明可用的DAV功能。Subversion服务器具有(有限的)DAV支持和相应的答复,然后Office使用它直接写回服务器。

我们使用的解决方案是在Apache服务器上使用mod_rewrite来拦截这些请求并发送回405 Method Not Allowed响应。重写配置为:

# Intercept Microsoft Office Protocol Discovery
RewriteCond %{REQUEST_METHOD} ^OPTIONS
RewriteCond %{HTTP_USER_AGENT} ^Microsoft\ Office\ Protocol\ Discovery [OR]
RewriteCond %{HTTP_USER_AGENT} ^Microsoft\ Office\ Existence\ Discovery [OR]
RewriteCond %{HTTP_USER_AGENT} ^Microsoft\-WebDAV\-MiniRedir.*$
RewriteRule .* - [R=405,L]

它拦截名称为“ Microsoft Office Protocol Discovery”的代理发出的所有方法OPTIONS请求,并发送回405。此解决方案由http://rails.nuvvo.com/lesson/2318-dealing-上的第一条评论提出。 与Microsoft-office-protocol-discovery-in-rails#comments一起使用

现在Office尝试了一些OPTIONS请求,被405拒绝,然后放弃并关闭了对该特定服务器的所有DAV支持,同时为客户端可能要与之交互的任何其他服务器启用了该功能。


非常感谢!当我不使用Subversion时,我一直在解决同一核心问题,直到现在都找不到文档。我仍然不是100%地确定这是全部还是全部,但听起来像是。打开网页上链接的Office文档会使内部超链接(相对,没有路径)具有路径的完全限定的http地址,即使应从本地缓存中查看副本也是如此。这仅在IE中发生... FF和Chrome显示本地文件缓存中的断开链接(按预期)。再一次谢谢你。
one.beat.consumer 2011年

1
由@chekolyn建议,添加以下三行来重写配置:RewriteCond %{HTTP_USER_AGENT} ^Microsoft\ Office\ Protocol\ Discovery [OR] RewriteCond %{HTTP_USER_AGENT} ^Microsoft\ Office\ Existence\ Discovery [OR] RewriteCond %{HTTP_USER_AGENT} ^Microsoft\-WebDAV\-MiniRedir.*$
HopelessN00b

Excel HYPERLINK()调用不会生成OPTIONS请求,但会生成额外的GET。要与它们一起监视的用户代理字符串是“ ms-office”。返回错误405使超链接根本无法正常工作,但是返回空白的Office响应确实成功了,它几乎立即打开了默认Web浏览器的URL(我在IIS上使用ASP.NET,所以我做了验证之前)。
richardtallent14年

但是,现在有些专业人士不再拥有ms-office。例如我的2013年没有。
mplungjan 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.