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