.: WebDAV Server
IntroductionMy WebDAV server was written to allow developers to easily integrate WebDAV support into software systems. It was written after surveying the existing free WebDAV servers and finding them all lacking. Most free WebDAV servers can only serve files on disk whereas I wanted to serve dynamic data, most present data as read-only whereas I wanted to be able to lock and edit it, and most are buggy and highly noncompliant with the standard.
A typical use case would be integrating Microsoft Office or Open Office into a web-based document management system so that users can click a link to open a document in Office via WebDAV and have it saved back into the DMS, transparently participating in any versioning, metadata extraction, and other features the DMS may have. Another case might be allowing a software system's data to be mapped to a drive so it can be edited using any program the user has. For example, consider a database table exposed through WebDAV. It might be exposed in multiple formats, such as .csv, .xlsx, etc. Editing any of these virtual files could transparently update the database, allowing easy database editing via any spreadsheet program, text editor, or perl script.
The server is in use by several companies and government organizations, so it's fairly useful and stable. It was originally written in 2012. In 2015, it was updated to the latest HTTP standards and the levels of polish and documentation were significantly improved.
UsageIf you just want to use WebDAV to expose some files on disk, all you have to do is copy the DLLs and add a few lines to your web.config file. (See the Web.config.sample and Web.config.minimal files for documentation and examples.) If you want to add a custom data source, it's fairly straightforward. (See the services in the Examples directory, as well as FileSystemService.cs.) If you want help using, extending, or debugging it, feel free to contact me.
DownloadPre-built binaries: WebDAV.Server.zip (1.9MB) Release 7 - released March 31st, 2017
The latest source code can be obtained from here.