8

我希望在 ASP.Net 中实现 WebDAV 服务器。该应用程序将部署到 IIS 6。我已经看到了一些提供此功能的框架,但我似乎无法确定它们如何在不(显然)修改 IIS 设置的情况下完成它。

我的具体问题是如何配置 IIS 和 ASP.Net,以便 IHttpModule/IHttpHandler 可能有机会处理任何其他 WebDAV 动词(即 LOCK、OPTIONS、PROFIND 等)

4

3 回答 3

8

如果不修改 IIS 设置,就无法在 IIS 6 中配置 WebDAV 谓词。只有 IIS 7 及更高版本才有可能。

要在 IIS 6 中处理 WebDAV 所需的所有动词,您需要创建一个应用程序 wildacrd 映射。在 IIS 6 MMC 控制台中右键单击您的 Web 应用程序,然后转到Properties -> Virtual Directory Tab-> Configuration。单击插入以添加新的通配符映射。

  • 可执行文件 - \Microsoft.NET\Framework\<.Net Framework 版本>\aspnet_isapi.dll
  • 验证文件是否存在 - 未选中

在此处输入图像描述

在应用程序属性的主目录选项卡上,将执行权限设置为仅脚本并允许读取。

这是 web.config 示例:http ://www.webdavsystem.com/server/prev/v2/documentation/hosting_iis_asp_net/webconfig_example

请注意,此 web.config 示例是专门在 Server 2003 上的 IIS 6 和 XP 上的 IIS 5.1 上使用 ASP.NET 2.0 创建和测试的。它不处理 &、%、+ 和尾随点 (.)。

ASP.NET 4.x 提供了处理 WebDAV 服务器中任何特殊字符、配置 web.config的方法,包括 &、% 和 '.'。支持 IIS 版本 6-8 的 web.config 由IT Hit WebDAV Server Engine Wizard生成。

于 2013-02-12T18:50:36.373 回答
6

查看 Geoff Lane 关于 WebDAV 的文章:

于 2009-03-09T20:09:31.317 回答
4

我会看看这个项目http://sourceforge.net/projects/webdav/在 C# 中的 webdav 实现。如果您必须自己构建,最好参考已完成的;如果您可以重复使用它,那就更好了。

是的,您需要修改 IIS6 设置以支持将 .NET 的 ISAPI 模块绑定到所有请求类型,并且不检查文件是否存在。在 IIS6 上没有其他方法可以执行此操作,因为在检查 webdav 支持时,Windows 上的 Web 开发客户端将在网站的根 (/) 上执行 OPTIONS 请求。

II7 为您提供更多选择...

于 2009-03-10T15:06:24.237 回答