因此,我一直在开发一款 Windows 应用程序,该应用程序一端与 WebClient 服务和 Office 应用程序挂钩,另一端与 SharePoint 挂钩,以进行一些高级压缩等操作。大多数情况下,使用 WebDAV 和常规 Office 下载时,当 WebClient 服务完全禁用时,一切都运行正常。
但是在 Word 2007 中,每当启用 WebDAV 时,它似乎就会完全忽略 WebDAV,而改用旧的 Vermeer RPC 通信。
到目前为止,我还完全无法可靠地复制这一点,因此在使用该协议时,测试我的应用程序的功能变得极其困难。
所以我想知道是否有人知道在什么情况下 Word 2007 会使用 Vermeer RPC 来处理从 SharePoint 签出和下载文档。是 Word 决定还是 SharePoint 决定如何使用以及何时使用它?
答案1
事实证明,答案就在我面前,但我的插件却将它隐藏了。
如果禁用 WebClient 服务(不只是停止,而是禁用,因为 Office 会在可以的情况下重新启动它),则 Office 应用程序将回退到 Vermeer RPC。
我的服务器插件对 Vermeer 数据包的标头进行了稍微的破坏,因此无法正确读取这些数据包,并且会进一步退回到直接的 HTTP GET 操作以以只读方式打开文档。
我猜我看到的 Vermeer RPC 的零星使用是由于类似的问题;服务器插件使用 WebDAV 标头阻止了某些东西并迫使它回退到 Vermeer。哎呀。