我期待在ASP.Net中实现WebDAV服务器.该应用程序将部署到IIS 6.我已经看到了一些提供此功能的框架,但我似乎无法确定如何在没有(显然)修改IIS设置的情况下完成它.
我的具体问题是如何配置IIS和ASP.Net,以便IHttpModule/IHttpHandler可能有机会处理任何其他WebDAV动词(即LOCK,OPTIONS,PROFIND等)
在不修改IIS设置的情况下,无法在IIS 6中配置WebDAV谓词.只有IIS 7及更高版本才有可能.
要处理IIS 6中WebDAV所需的所有谓词,您需要创建一个应用程序wildacrd映射.右键单击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和XP上的IIS 5.1上使用ASP.NET 2.0专门创建和测试的.它不处理&,%,+和尾随点(.).
ASP.NET 4.x提供了处理WebDAV服务器中任何特殊字符的方法,配置web.config,包括&,%和'.'.支持IIS版本6-8的web.config由IT Hit WebDAV服务器引擎向导生成.
查看Geoff Lane关于WebDAV的文章:
http://www.zorched.net/2006/01/20/aspnet-web-application-without-aspx-extension/ - 显示IIS和HttpModule设置中动词的配置.
http://www.zorched.net/2006/02/02/custom-webdav-server-using-net/
http://www.zorched.net/2006/03/01/more-webdav-tips-tricks-and-bugs/