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

我们有一个Apache Subversion服务器,我们在其中存储了所有的文档。 我们在svn中有很多Word,Excel,PDF等文档,我们所有的用户都使用TortoiseSVN作为他们的客户端界面。 很多用户还会通过网页浏览器浏览回购,不幸的是,这通常是Internet Explorer。

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

从谷歌search,似乎很多人都希望这种行为。 但是,我们想要禁用它 – 这不符合我们现有的stream程。 我怎么能这样做?

我对客户端机器没有很多控制权,所以涉及为每个客户端禁用所有Office文档协作function的解决scheme并不是我所期待的。 另外,除了在IE中禁用Office Document Cache Handler插件之外,我找不到其他的办法。 唯一可行的客户端选项是专门为我们的命名服务器禁用此function的选项,但将其留给其他人使用。

这样就留下了服务器端解决scheme。 我猜Office办公室看到svn服务器有WebDAV支持,因此进入一个Sharepoint的文档pipe理工作stream程。 有没有办法阻止这种集成,而不禁用服务器上的所有WebDAV支持(假设我们甚至可以这样做)? 我们实际上使用svn的autoversioning其他用途,所以这是一个必需的function。 我已经find关于禁用该function的讨论,如果它实际上是一个Sharepoint服务器,但它不是! 我理解这种事情是如何工作的(例如,Office客户端在服务器上识别WebDAV支持)是相当有限的,所以如果可以的话请进一步解释。

如果重要,服务器设置是:

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

解决了它(最后)。 http://support.microsoft.com/kb/838028说明Office如何使用Microsoft Office协议发现来确定文档服务器是否具有WebDAVfunction。 它发送一个HTTP 1.1 OPTIONS请求,并期望200 OK回复详述可用的DAVfunction。 Subversion服务器具有(有限的)DAV支持和答复,然后Office使用它直接写回服务器。

我们使用的解决scheme是使用Apache服务器上的mod_rewrite来拦截这些请求,并发送一个405方法不允许的响应。 重写configuration是:

 # 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] 

它拦截来自代理的方法OPTIONS的所有请求,名称为“Microsoft Office Protocol Discovery”,并发回405.此解决scheme是由http://rails.nuvvo.com/lesson/2318-dealing- with-microsoft-office-protocol-discovery-in-rails#comments 。

现在,Office会尝试一些OPTIONS请求,被405拒绝,然后放弃并closures对此特定服务器的所有DAV支持,同时将其保留为客户端可能想要与之交互的任何其他服务器。