Question

I am looking to implement a WebDAV server in ASP.Net. the app will be deployed to IIS 6. I have seen a few frameworks that provide this functionality, but I can't seem to identify how they're able to accomplish it without (apparently) modifying IIS settings.

My specific question is how do I configure IIS and ASP.Net so that a IHttpModule/IHttpHandler might have an opportunity to handle any of the additional WebDAV verbs (i.e. LOCK, OPTIONS, PROFIND, etc.)

Was it helpful?

Solution

There is no way to configure WebDAV verbs in IIS 6 without modifying IIS settings. It is possible only with IIS 7 and later.

To handle all verbs required by WebDAV in IIS 6 you will need to create an application wildacrd map. Right click on your web application in IIS 6 MMC console and go to Properties->Virtual Directory Tab->Configuration. Click Insert to add new wildcard map.

  • Executable - \Microsoft.NET\Framework\<.Net Framework Version>\aspnet_isapi.dll
  • Verify that file exists - Unchecked

enter image description here

On Home Directory tab of your application properties set Execute permissions to Scripts only and allow reads.

Here is the web.config example: http://www.webdavsystem.com/server/prev/v2/documentation/hosting_iis_asp_net/webconfig_example

Please note that this web.config example was specifically created and tested with ASP.NET 2.0 on IIS 6 on Server 2003 and IIS 5.1 on XP. It does not handle &, %, + and trailing dots (.).

ASP.NET 4.x provides means for handling any special characters in your WebDAV server, configuring web.config, including &, % and '.'. The web.config that supports IIS versions 6-8 is generated by IT Hit WebDAV Server Engine Wizard.

OTHER TIPS

I would take a look at this project http://sourceforge.net/projects/webdav/ for a webdav implementation in C#. If you must build your own it is nice to reference a completed one; even better if you can reuse it.

Yes, you will need to modify IIS6 settings to support binding the ISAPI module for .NET to all request types and not checking if a file exists. There is no other way to do this on IIS6 because web dev clients on windows will do an OPTIONS request on the root (/) of the website when checking for webdav support.

II7 gives you more options...

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top