题
我正在寻找在 ASP.Net 中实现 WebDAV 服务器。该应用程序将部署到 IIS 6。我见过一些提供此功能的框架,但我似乎无法确定它们如何在不(显然)修改 IIS 设置的情况下完成此功能。
我的具体问题是如何配置 IIS 和 ASP.Net,以便 IHttpModule/IHttpHandler 可能有机会处理任何其他 WebDAV 动词(即锁定、选项、PROFIND 等)
解决方案
如果不修改 IIS 设置,则无法在 IIS 6 中配置 WebDAV 动词。仅适用于 IIS 7 及更高版本。
要处理 IIS 6 中 WebDAV 所需的所有动词,您需要创建应用程序通配符映射。在 IIS 6 MMC 控制台中右键单击您的 Web 应用程序,然后转到 特性->虚拟目录 选项卡->配置. 。点击 插入 添加新的通配符映射。
- 可执行 - 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 上的 ASP.NET 2.0 和 XP 上的 IIS 5.1 上的 ASP.NET 2.0 创建和测试的。它不处理 &、%、+ 和尾随点 (.)。
ASP.NET 4.x 提供了处理 WebDAV 服务器中任何特殊字符的方法, 配置 web.config, ,包括&、%和'.'。支持 IIS 版本 6-8 的 web.config 是由以下命令生成的 IT 命中 WebDAV 服务器引擎向导.
其他提示
查看 Geoff Lane 在 WebDAV 上的文章:
我会看看这个项目 http://sourceforge.net/projects/webdav/用于C#中的webdav实现。如果你必须建立自己的,那么引用一个已完成的很好;如果可以重复使用它会更好。
是的,您需要修改IIS6设置以支持将.NET的ISAPI模块绑定到所有请求类型,而不是检查文件是否存在。在IIS6上没有其他方法可以执行此操作,因为在检查webdav支持时,Windows上的Web开发客户端将在网站的根(/)上执行OPTIONS请求。
II7为您提供更多选择......