mod_isapi.html revision 25503838e438bb909e3ff880125732c7ed5e64ad
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan<HTML>
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan<HEAD>
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan<TITLE>Apache module mod_isapi</TITLE>
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan</HEAD>
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan<BODY
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan BGCOLOR="#FFFFFF"
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan TEXT="#000000"
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan LINK="#0000FF"
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan VLINK="#000080"
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan ALINK="#FF0000"
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan>
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan<!--#include virtual="header.html" -->
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan<H1 ALIGN="CENTER">Module mod_isapi</H1>
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan<P>This module is contained in the <CODE>mod_isapi.c</CODE> file, and is
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan compiled in by default. It provides support for ISAPI Extensions when
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan running under Microsoft Windows. Any document with a handler of
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan <CODE>isapi-isa</CODE> will be processed by this module.
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan<H2>Purpose</H2>
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan<P>This module implements the <A
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan HREF="http://www.microsoft.com/win32dev/apiext/isapimrg.htm">ISAPI
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan Extension</A> API. It allows Internet Server Applications (i.e., ISAPI
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan Extensions) to be used with Apache for Windows.
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan<H2>Usage</H2>
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan<P>In the server configuration file, add a handler called
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan <CODE>isapi-isa</CODE>, and map it to files with a <CODE>.DLL</CODE>
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan extension. In other words:</P>
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan<PRE>
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan AddHandler isapi-isa dll
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan</PRE>
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan<P>Now simply place the ISA DLLs into your document root, and they will
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan be loaded when their URLs are accessed.</P>
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan<P>ISAPI Extensions are governed by the same restrictions as CGI
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan scripts. That is, <CODE>Options ExecCGI</CODE> must be active in the
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan directory that contains the ISA.</P>
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan<H2>Notes</H2>
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan<P>Apache's ISAPI implementation conforms to all of the ISAPI 2.0
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan specification, except for the "Microsoft-specific" extensions dealing
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan with asynchronous I/O. Apache's I/O model does not allow asynchronous
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan reading and writing in a manner that the ISAPI could access. If an ISA
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan tries to access async I/O, a message will be place in the error log,
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan to help with debugging.
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan<P>Some servers, like Microsoft IIS, load the ISA into the server, and
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan keep it loaded until memory usage is too high, and it is
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan unloaded. Apache currently loads and unloads the ISA for each
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan request. This is inefficient, but Apache's request model makes this
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan method the only method that currently works. A future release may use
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan a more effective loading method.
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan<P>Apache 1.3a1 currently limits POST and PUT input to 48k per
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan request. This is to work around a problem with the ISAPI implementation
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan that could result in a denial of service attack. It is expected that
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan support for larger uploads will be added soon.
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan<P>Also, remember that while Apache supports ISAPI Extensions, it does
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan not support ISAPI Filters. Support for filters may be added at a later
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan date, but no support is planned at this time.</P>
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan<!--#include virtual="footer.html" -->
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan</BODY>
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan</HTML>
159d09a20817016f09b3ea28d1bdada4a336bb91Mark Phalan