Skip to Content
New release 11.5 available 🎉

IIS WebDAV Configuration

When hosting Babel Licensing Service on Internet Information Services (IIS), you may encounter issues with API callbacks if WebDAV is enabled on your server. This document explains why these conflicts occur and provides configuration steps to resolve them.

Understanding the WebDAV Conflict

WebDAV (Web Distributed Authoring and Versioning) is an extension of HTTP that enables collaborative editing and file management on web servers. When enabled in IIS, WebDAV intercepts certain HTTP methods, including:

  • PUT
  • DELETE
  • PROPFIND
  • PROPPATCH
  • MKCOL
  • COPY
  • MOVE
  • LOCK
  • UNLOCK

Babel Licensing Service uses a RESTful API approach that relies on various HTTP methods, particularly PUT and DELETE. When WebDAV is enabled, it processes these requests before they can reach the Babel Licensing Service application, causing API callbacks to fail.

Symptoms of WebDAV Interference

You may be experiencing WebDAV conflicts if:

  • API callbacks fail with 405 (Method Not Allowed) errors
  • PUT and DELETE operations to the API result in unexpected responses
  • You’re unable to save or update data through the Babel Licensing Service
  • Other API operations work correctly, but certain update and delete operations fail

Resolving WebDAV Conflicts

To ensure Babel Licensing Service functions correctly in IIS, you must disable WebDAV for the application. Add or modify your web.config file with the following configuration:

<configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <modules> <remove name="WebDAVModule" /> </modules> <handlers> <remove name="WebDAV" /> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /> </handlers> <aspNetCore processPath="dotnet" arguments=".\Babel.Licensing.Service.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" /> </system.webServer> </location> </configuration>

Key Configuration Elements

  1. Removing the WebDAV Module:

    <modules> <remove name="WebDAVModule" /> </modules>

    This prevents WebDAV from intercepting HTTP requests at the module level.

  2. Removing the WebDAV Handler:

    <handlers> <remove name="WebDAV" /> <!-- other handlers here --> </handlers>

    This ensures the ASP.NET Core handler receives all HTTP requests regardless of the HTTP verb used.

Web.config Placement

Ensure this web.config file is placed in the root directory of your Babel Licensing Service application.

Site-Specific vs. Global Configuration

The configuration above disables WebDAV only for the Babel Licensing Service application. If you need WebDAV functionality for other applications on the same server, this approach allows you to selectively disable it only where needed.

If you prefer to disable WebDAV globally on your IIS server, you can do so through the IIS Manager:

  1. Open IIS Manager
  2. Select your server in the Connections panel
  3. Double-click on “WebDAV Authoring Rules”
  4. In the Actions panel, click “Disable WebDAV”

Verifying the Configuration

After applying the configuration changes:

  1. Restart the application pool for Babel Licensing Service
  2. Test API callbacks that previously failed
  3. Verify that data saving and updating functions work correctly

Troubleshooting

If issues persist after implementing these changes:

  1. Ensure the application pool has restarted
  2. Check IIS logs for any error messages
  3. Verify the web.config syntax is correct
  4. Confirm the WebDAV module is actually installed on your server (the removal directive is still safe even if it’s not)
  5. Examine application logs for any API-related errors

For additional assistance, please contact Babel Licensing Service support with your IIS server version and configuration details.

Last updated on