我编写了一个自定义的WebDAV服务器,它可以从数据库中对用户进行身份验证,并根据数据库的记录为虚拟文件系统提供服务。它在第三方WebDAV客户端运行良好,但在将驱动器映射到http位置时不适用于Windows内置迷你重定向器。
最奇怪的是,在我编写服务器的开发PC上,我可以很好地连接,但是任何其他试图访问服务器的计算机都无法与迷你重定向器连接。
我用Fiddler来分析网络流量,一切看起来都很好。当我试图映射驱动器时,会发送一个选项头,我的服务器将以200 OK作为响应。然后,微型重定向器发送一个深度为0的PROPFIND方法.我的服务器以401未经授权的方式进行响应。这会弹出用户和密码的登录对话框。输入密码后,会发送一个新的PROPFIND请求,但这次是带有授权头的。一切看起来都很好,我的服务器接受登录凭据,并通过对根目录的"HREF“响应207多状态响应。此时,迷你重定向器再次打开登录提示符,并在连接错误之前总共打开3次,错误说找不到服务器。奇怪的是,找到了服务器,我可以在Fiddler中看到它,服务器正在按预期进行响应。
每一个第三方WebDAV客户端都与我的服务器有类似的交换,并连接并打开一个目录列表。只有迷你重定向器失败了。正如我前面提到的,它在我的开发机器上使用了迷你重定向器(虽然我连接到的IIS 7.5服务器不在我的开发机器上)。其他每台计算机都无法连接。我确保使用注册表黑客允许在非安全的HTTP站点上进行基本身份验证。我甚至把我的服务器转移到一个安全的HTTPS站点上,为了防止出现这样的问题,它仍然不能工作。有没有人有任何想法。我认为这必须与我在服务器上的IIS 7.5安装程序有关,或者在除我的开发机器之外的所有其他客户端计算机上设置,因为我的代码看起来很好,服务器似乎对微型重定向器请求的响应很好,它只是不像对所有其他客户端那样在207多状态响应之后映射驱动器。
任何帮助都将不胜感激。令人沮丧的是,我认为迷你重定向器是最难工作的,所以我首先在我的开发机器上工作,然后再对所有其他客户端进行测试,所以我认为自己的状态很好,直到我试图在其他计算机上连接并发现它正在失败,但只限于使用迷你重定向器。遗憾的是,对我的潜在客户来说,迷你重定向器是最容易使用的,所以它必须与迷你重定向器一起工作。我可以提供来自Fiddler的响应/请求,如果这将帮助任何人与我一起调试。
发布于 2014-01-15 19:25:49
Microsoft重定向器有一个已知的错误,它不能完全使用默认的WebDav命名空间。在添加了一个名称空间前缀并使用它标记了我的所有xml元素之后,我的问题就消失了。
http://lists.w3.org/Archives/Public/public-html/2011Jan/0263.html
https://serverfault.com/questions/567063
复制相似问题