1

我在我们公司的网站上设置了 ITHit WebDAV 服务器,该服务器在 Office 2007/10/13 和 PowerPoint、Word 和 Excel 上运行良好。但是,我最近更新到 Office 2016,发现 Excel 不再工作,但 Word 和 PowerPoint 工作正常。

在 Excel 中,我收到以下错误消息:

在此处输入图像描述

在 Word 和 PowerPoint 中,我得到下面可以跳过的对话框:

在此处输入图像描述

Excel 2016 中的 ITHit WebDAV 服务器是否存在已知问题?

当我在 Visual Studio 2015 中附加时没有抛出异常。此外,当我检查 Fiddler 时,我可以看到 WebDAV 服务器尝试做的最后一件事是锁定文档,这似乎没有任何异常。它锁定并解锁文档两次,然后在我尝试保存它的锁上,然后在 Excel 中返​​回错误消息(见图 1)。

锁定请求如下所示:

第一锁OK: 在此处输入图像描述

开锁: 在此处输入图像描述

锁定文档并停止: 在此处输入图像描述

我能看到的唯一不同的是标题的杂项部分中的一个字段: 在此处输入图像描述

我已经用尽了所有选项,但我不知道为什么只有 Excel in Office 2016 会发生这种情况。

任何帮助将不胜感激。

4

3 回答 3

1

这个错误已经存在了一段时间,我发现了一个旧的相关微软帖子:

http://answers.microsoft.com/en-us/msoffice/forum/msoffice_excel-mso_other/upload-failed-server-file-updated-were-sorry/30b69218-2cc1-40e2-8ede-69ac8bd55ba6

Microsoft 从未提出解决方案,但一位名叫 Berend Engelbrecht 的用户确实发布了两个解决方法。有一个代码修复对我不起作用,但值得一试。假设是 Excel 错误地处理了修改后的日期,所以不要费心返回它。这就是我为 IT Hit WebDAV 实现它的方式。在我的 IHierarchyItemAsync 实现中将 Modified 设置为 DateTime.MinValue 会阻止将修改后的日期添加到响应中。

if (context.Request.UserAgent != null &&
    context.Request.UserAgent.IndexOf("Microsoft Office Excel", StringComparison.InvariantCultureIgnoreCase) >= 0)
{
    Modified = DateTime.MinValue;
}

第二种解决方案确实有效,但对我们的最终用户来说并不实用。每个人都必须关闭 Internet 文件的受保护视图:文件 > 选项 > 信任中心 > 信任中心设置 > 受保护视图。

另请注意,在本地调试时,我从未遇到过问题,因为我的本地 WebDAV 没有将受保护的视图触发为“互联网位置”。

希望其中一个有帮助,如果有人找到不同的解决方案,请在此处发布。

于 2016-11-09T16:39:27.510 回答
0

我知道这篇文章很旧,但对于遇到同样问题的人来说,这里是解决方案:

出现此错误是因为如果用户选择“启用编辑”,Excel 会再次请求该文件。如果服务器再次发送文件(代码为 200)而不是返回 304(未修改),Office 似乎认为有人更改了文件,即使事实并非如此。

一种快速的解决方案是使用ETag标头并验证If-None-Match将来的请求以了解要返回的内容,无论是 304 还是 200。

于 2020-06-02T01:30:48.370 回答
0

我已经仔细检查了 MS Excel 2016 与 IT Hit WebDAV 服务器引擎一起工作没有问题。以下是可能导致此问题的原因:

  • 不正确的修改日期属性实现。确保此属性返回正确的UTC日期。

  • ETag实现不正确。确保每次更新文档时更改此属性。

我检查了 2 个服务器配置:运行 Server Engine v3.9.2075 的https://ajaxbrowser.com网站(匿名身份验证)和在 localhost 上运行的示例服务器,由 Visual Studio v4.5.2958 的 WebDAV 向导生成(在注册表中启用了基本身份验证) .

作为测试客户端环境,我在 Win 8.1 上使用了 MS Office 2016,在 Win 10 上使用了 MS Office 2013。在这两种情况下,excel 文档打开都没有问题,我能够将其保存回服务器。MS Office 受保护的视图选项在测试机器上设置为默认值 - 全部选中。

于 2016-11-11T00:33:09.647 回答