<% Z::set_settings( "title" => "ISAPI Configuration", "help" => "/apps/web/docs/modules/isapi/index.html", "base" => "modules!isapi" ); $::f{back} = "/apps/web/modules.ahtml?server=$::f{server}" if( !defined $::f{back} ); %> <% Z::parse( "../../etc/editheader.ahtml" ) %>

ISAPI provides a vendor-independent way of extending the functionality of your web server. It offers far more flexibility than the CGI interface and avoids all the performance limitations.

With ISAPI, you have the choice to run filters and extensions as either "in-process" or "out-of-process". "in-process" means that the module will run in the server process, while "out-of-process" means that the module will run securely in an independent process from the server. Because "in-process" ISAPI modules run in the same process space as the Zeus server there could be some reliability/performance issues. As such, these should be seen as a platform to build high-performance applications with, and not entirely as a replacement for other alternatives such as "out-of-process" ISAPI or CGI.

ISAPI extensions will only be run from designated ISAPI alias directories defined by the map module.


Registered in-process Filters
<%= Z::form( ) %> <%= ( grep /^\!filters\!/, keys %::f ) and Z::form_table( key=>"Filename", base=>"filters" ) or "No in-process ISAPI filters are currently defined" %>

Add in-process filter:

Filename:
<%= Z::endform() %>
Registered Out-of-process Filters
<%= Z::form( ) %> <%= ( grep /^\!efilters\!/, keys %::f ) and Z::form_table( key=>"Filename", base=>"efilters" ) or "No out-of-process ISAPI filters are currently defined" %>

Add out-of-process filter:

Filename:
<%= Z::endform() %>
Extensions
<%= Z::form( target=>$::f{back} ) %> Please choose if you would like your extensions to run as in-process modules, or out-of-process.

> in process
> out-of-process

<%= Z::endform() %>
<% Z::parse( "../../etc/footer.ahtml" ) %>