我正在寻找在 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
  • 验证文件是否存在 - 未选中

enter image description here

主目录 应用程序属性集的选项卡 执行权限仅脚本 并允许读取。

这是 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 服务器引擎向导.

其他提示

我会看看这个项目 http://sourceforge.net/projects/webdav/用于C#中的webdav实现。如果你必须建立自己的,那么引用一个已完成的很好;如果可以重复使用它会更好。

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top