What are the two primary methods for developing custom IIS modules, and what are their key characteristics?
Custom IIS modules can be developed as Native Modules using C++ and the IIS native server extensibility API, or as Managed Modules using C# (or other .NET languages) and ASP.NET server extensibility APIs. Both result in a DLL that must export the `RegisterModule` function (for C++) or implement `System.Web.IHttpModule` (for C#). Native modules offer lower-level access and are loaded directly by IIS, while managed modules run within the .NET framework and can be configured via `web.config`. The article Bypassing Firewalls Using IIS Module Functionality provides detailed setup steps for both approaches.
native modulemanaged moduleC++ IIS moduleC# IIS moduleRegisterModuleIHttpModule