This module is contained in the mod_isapi.c
file, and is
compiled in by default. It provides support for ISAPI Extensions when
running under Microsoft Windows. Any document with a handler of
isapi-isa
will be processed by this module.
This module implements the ISAPI Extension API. It allows Internet Server Applications (i.e., ISAPI Extensions) to be used with Apache for Windows.
In the server configuration file, add a handler called
isapi-isa
, and map it to files with a .DLL
extension. In other words:
AddHandler isapi-isa dll
Now simply place the ISA DLLs into your document root, and they will be loaded when their URLs are accessed.
ISAPI Extensions are governed by the same restrictions as CGI
scripts. That is, Options ExecCGI
must be active in the
directory that contains the ISA.
Apache's ISAPI implementation conforms to all of the ISAPI 2.0 specification, except for the "Microsoft-specific" extensions dealing with asynchronous I/O. Apache's I/O model does not allow asynchronous reading and writing in a manner that the ISAPI could access. If an ISA tries to access async I/O, a message will be place in the error log, to help with debugging.
Some servers, like Microsoft IIS, load the ISA into the server, and keep it loaded until memory usage is too high, and it is unloaded. Apache currently loads and unloads the ISA for each request. This is inefficient, but Apache's request model makes this method the only method that currently works. A future release may use a more effective loading method.
Apache 1.3a1 currently limits POST and PUT input to 48k per request. This is to work around a problem with the ISAPI implementation that could result in a denial of service attack. It is expected that support for larger uploads will be added soon.
Also, remember that while Apache supports ISAPI Extensions, it does not support ISAPI Filters. Support for filters may be added at a later date, but no support is planned at this time.