【问题标题】:Opening WebDAV documents as read-only in MS Office with IT Hit WebDAV Server使用 IT Hit WebDAV Server 在 MS Office 中以只读方式打开 WebDAV 文档
【发布时间】:2017-10-13 09:29:43
【问题描述】:

我正在创建一个用于管理远程 MS Office 文档的解决方案。我使用 IT Hit WebDAV System (www.webdavsystem.com) 制作的库作为原型。它实际上做得很好,除了我无法使用办公 URI 以只读模式打开文档(基于 Microsoft 的 Office URI Schemes)。

我想以只读模式打开文档,以便其他人可以同时对其进行编辑。正如在 B-3 中可以看到的那样。 URI Scheme Syntax 部分提到的文档,有三个可用的命令:

  • ofe - 打开以供编辑
  • ofv - 打开查看
  • nft - 来自模板的新功能

似乎服务器总是作为“ofe”命令发出的,无论使用哪一个。实际上,输入“whatever”也可以,它实际上可以是所有内容。以 MS Word 为例,我在下面发布请求顺序:

OPTIONS => HEAD => OPTIONS => OPTIONS => LOCK => GET => PROPFIND => OPTIONS

正如我正确理解的那样,成功的 LOCK 尝试会导致以编辑模式打开文档。这告诉我,在那之前的某个地方 MS WORD 应该请求允许这样做,但我分析了以前的请求并且无法找到任何相关数据。
这也不是我的环境问题。我用 SharePoint 查了一下,没问题。这就是为什么我会责怪服务器。

当我在this 问题中读到那句话(下)时,

大多数 WebDAV 客户端会忽略这一点,并假装整个服务器是可读写的或只读的

我开始怀疑。也许是这样?也许图书馆会跳过它并将每个文件都视为读写?如果是,我该如何检查才能确定?

我还检查了this 主题。作者提到,他的 OPTIONS 请求中有 Office URI 命令,但链接不再有效。在 MS Office 2016 发送的请求中,我在任何地方都找不到。它应该在任何地方吗?在哪里?

最后但同样重要的是,我找到了this 主题。这似乎正是我的问题,但它没有提到解决方案,或者至少没有任何对我有用的东西。

我将不胜感激。

【问题讨论】:

  • 对我来说完全删除了 DAV 标头和 MS-Author-Via:只读文件的 DAV 效果很好。我认为这可能不适用于所有情况(例如,当需要一些其他 WebDAV 功能时)。

标签: c# webdav ithit-webdav-server


【解决方案1】:

我们最近使用最新的 MS Office 2016 for Windows 和安装了所有更新的 Mac OS X 重新测试了 ofv 和 ofe 选项。以下是我们的发现:

  • 在 Windows 上,此选项将被忽略。不管这个参数 MS Office 以读写方式打开。
  • 在 Mac OS 上,此选项是必需的。多发性硬化症 Office 尊重此选项并根据 ofv/ofe 打开为 只读或读写。

根据我们的经验,没有可靠的方法可以以只读方式打开文档。在 SharePoint Online (SPS 2016) 中,也没有在桌面上以只读方式打开文档的选项MS Office 版本。

一种解决方法是在保存文件时在 IFileAsync.WriteAsync() 方法实现中抛出 DavException。请注意,MS Office 将忽略返回的消息文本,只会显示一般错误。

另一种解决方法是在 IMsItemAsync.GetFileAttributesAsync() 方法实现中将文档标记为只读:

    public async Task<FileAttributes> GetFileAttributesAsync()
    {
        return fileSystemInfo.Attributes | FileAttributes.ReadOnly;
    }

MS Office 将显示黄色丝带“上传失败此文件已锁定,无法由其他用户编辑”。

【讨论】:

  • 谢谢,在 windows 上遇到了同样的问题。即使失败的 LOCK 查询也无法阻止 MS Word 以读写方式打开文档。
  • 其中一种解决方案可能是在 OPTIONS 响应中包含“MS-Author-Via”标头。根据我的经验,这会使 Word 以只读模式打开。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多