Shortround's Space

IIS Module Permissions

I'm writing this down for posterity, as I've run into and had to solve this problem personally like 3 times, so I figured it'd be best to document the solution.

When developing a native IIS module on Windows, it is important that IIS can access that module. If IIS's user group does not have access to the module's DLL file, Windows' Event Viewer will show an unhelpful message:

The Module DLL C:\Path\To\Your\Module.dll failed to load. The data is the error.

IIS has a group of users called [your machine name]\IIS_IUSRS and you need to add this group to the file permissions for your module.dll file. You can do so in the properties > security > advanced settings.

Name Mangling

The data is the error also shows up if your module fails to export a RegisterModule function correctly, but the error is slightly different:

Failed to find the RegisterModule entrypoint in the module DLL :\Path\To\Your\Module.dll. The data is the error.

This means that you either forgot to export RegisterModule, or C++ is mangling the function name and you need to export it with extern "C"

Thoughts? Leave a comment