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](/news/bypassing-firewalls-using-iis-module-functionality) provides detailed setup steps for both approaches.