将 IIS8.5 WebDAV 安装到本地驱动器号时出现问题

将 IIS8.5 WebDAV 安装到本地驱动器号时出现问题

本周早些时候,我发布了一个有关我们的 IIS8.5/WebDAV 设置的问题:带有 WebDAV 的 IIS8.5 仅提供只读文件

我已经完成了基本工作,但现在在将 WebDAV 映射到客户端电脑(Windows 10)上的驱动器号时遇到了麻烦。

我的 IIS 设置如下:

站点

突出显示的“Z-Drive”应用程序指向服务器上的 Z: 驱动器。其下方是一个单独的站点(在端口 #8080 上运行),该站点具有完全相同的设置(相同的物理路径、相同的应用程序池、相同的 WebDAV 创作规则)。

然而,这两个 URL 的行为却截然不同!

  1. http://服务器/Z-Drive可以映射到 PC 上的本地驱动器号,但它是只读的。使用 curl ( curl --ntlm --u username:password -T file.docx http://server/Z-drive) 测试此操作会返回 409.0 错误(“冲突”)。
  2. http://服务器:8080可以与 curl 一起正常工作(相同的 curl 命令将文件复制到服务器),但该 URL 无法映射为本地驱动器号。 net use Z: http://server:8080给出System error 1920 has occurred。我可以映射该 Z: 驱动器的子文件夹(net use Z: http://server:8080/subfolder),但我需要用户能够通过 WebDav 获取整个 Z: 驱动器,就像他们 PC 上的一个驱动器一样。

我愿意使用以下任一 URL(http://服务器/Z-Drive或者http://服务器:8080),但其中一个以只读方式映射到驱动器号,而另一个甚至不会映射。对于这两个问题有什么建议吗?

答案1

我通过启用和分析 IIS 站点日志文件发现了大多数 WebDAV 问题。

我们使用两个参考资料来设置 WebDAV - 也许其中一个可以为您提供一些帮助:

不幸的是,与我们的其他 Linux WebDAV 服务器相比, Microsoft IIS WebDAV 服务造成了很多问题 - 而 Microsoft 多年来一直没有解决这些问题。(例如,我们在文件锁定、文件名编码、“长”文件名方面存在问题 [我们有 2016 年,Microsoft 只需使用支持真正长文件名的正确 Win32 API] 等。)

此外,多年以来,Windows WebDAV 客户端非常烦人: 在某些客户端上,WebDAV 连接可以正常工作,而在其他客户端上,相同的 net use 命令会抛出错误。SSH 证书也存在问题。

因此,我们在客户端上使用第三方软件来映射 WebDAV 驱动器 - 它们更加稳定,通常速度更快,并且在我们所有的 Windows 客户端上的行为都相同。

谨致问候,汤姆

相关内容