如何获得自定义的WebDAV服务器与微型redirect器的工作

我编写了一个自定义的WebDAV服务器,用于从数据库validation用户,并根据数据库中的logging提供虚拟文件系统。 它与第三方的WebDAV客户端运行良好,但在将驱动器映射到http位置时,不能与Windows内置的迷你redirect器一起使用。

最奇怪的是,在我编写服务器的开发PC上,我可以很好地连接,但是任何试图访问服务器的其他计算机都无法与小redirect器连接。

我用小提琴来分析networkingstream量,一切都很好。 当我尝试映射驱动器时,发送一个OPTIONS标题,我的服务器以200 OK响应。 然后迷你redirect器发送深度为0的PROPFIND方法。我的服务器回应401未经授权。 这会popup用户名和密码的login对话框。 input密码后,会发送新的PROPFIND请求,但是这次是使用授权标头。 一切似乎工作正常,我的服务器接受login凭据,并回应与一个“HREF”到根目录的207 multistatus响应。 此时,迷你redirect器会再次提示login提示,总共执行3次,如果连接失败,说明无法find服务器。 奇怪的是,服务器被发现,我可以在Fiddler中看到它,服务器正在按照预期进行响应。

每个其他的第三方WebDAV客户端与我的服务器有类似的交stream,并连接,并提出一个目录列表就好了。 只有迷你redirect器失败。 正如我上面提到的,它在我的开发机器上使用迷你redirect器(尽pipe我连接的IIS 7.5服务器不在我的开发机器上)完美工作。 其他每台计算机都无法连接。 我已经确保使用registry黑客来允许基于非安全HTTP站点的基本身份validation。 我甚至把我的服务器移到了一个安全的HTTPS站点上,并提供了一个SSL证书,以防万一是这个问题,它仍然不起作用。 有没有人有任何想法。 我认为这是必须与我的服务器上的IIS 7.5安装程序,或除了我的开发机器之外的所有其他客户机上的设置,因为我的代码看起来没问题,服务器似乎对微型redirect器的请求,它只是没有映射驱动器之后的207 multistatus响应像所有其他客户端一样。

任何帮助将不胜感激。 令人沮丧的是,我期望mini-redirector是最难做到的工作,所以我在开发机器上首先开始工作,然后再与所有其他客户端进行testing,所以我认为我一直处于良好状态,直到我尝试连接其他电脑,看到它失败,但只有迷你redirect。 可悲的迷你redirect器是我的潜在客户最容易使用的,所以它必须与迷你redirect器一起工作。 如果这可以帮助任何人对我进行debugging,我可以提供来自Fiddler的响应/请求。

Microsoft WebDavredirect器有一个已知的错误,并不是所有您使用默认的XML命名空间。 添加一个名称空间前缀,并用它标记我所有的XML元素后,我的问题就消失了。

http://lists.w3.org/Archives/Public/public-html/2011Jan/0263.html