<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>Apache module mod_isapi</TITLE>
</HEAD>

<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
<BODY
 BGCOLOR="#FFFFFF"
 TEXT="#000000"
 LINK="#0000FF"
 VLINK="#000080"
 ALINK="#FF0000"
>
<!--#include virtual="header.html" -->

<H1 ALIGN="CENTER">Module mod_isapi</H1>

<P>This module is contained in the <CODE>mod_isapi.c</CODE> file, and is
   compiled in by default. It provides support for ISAPI Extensions when
   running under Microsoft Windows. Any document with a handler of
   <CODE>isapi-isa</CODE> will be processed by this module.

<H2>Purpose</H2>

<P>This module implements the <A
   HREF="http://www.microsoft.com/win32dev/apiext/isapimrg.htm">ISAPI
   Extension</A> API. It allows Internet Server Applications (<EM>i.e.</EM>, ISAPI
   Extensions) to be used with Apache for Windows.

<H2>Usage</H2>

<P>In the server configuration file, add a handler called
   <CODE>isapi-isa</CODE>, and map it to files with a <CODE>.DLL</CODE>
   extension. In other words:</P>
<PRE>
    AddHandler isapi-isa dll
</PRE>
<P>Now simply place the ISA DLLs into your document root, and they will
   be loaded when their URLs are accessed.</P>

<P>ISAPI Extensions are governed by the same restrictions as CGI
   scripts. That is, <CODE>Options ExecCGI</CODE> must be active in the
   directory that contains the ISA.</P>

<H2>Notes</H2>

<P>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.

<P>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.

<P>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.

<P>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.</P>

<!--#include virtual="footer.html" -->
</BODY>
</HTML>
