Microsoft Internet Security and Acceleration Server 2004 SDK

ISAPI: Comparing IIS and ISA Server

The ISA Server Web proxy supports the Web filter extensibility model, so that third-party developers can examine and change the HTTP request-and-response flow by using Web filters. ISAPI extensions are not supported.

The Web proxy manages communication with clients, and therefore does not rely on Internet Information Services (IIS). The Web proxy provides the functions necessary for the implementation of Web filters. Web filters developed for IIS will generally work with the Web proxy because the APIs are similar.

There are several important differences between ISAPI support in IIS and in ISA Server.

Architecture

Web filters for IIS are typically installed on a Web server. Web filters for ISA Server are installed on an ISA Server computer, between the Web server and the Web client, and act as conduits for requests to all external and internal sites. There is no local site or content, and no direct access to Web server files.

Functions

Support for general ISAPI functions, server support functions, and notification-specific functions in ISA Server differs slightly from IIS. The following table compares support for ISAPI functions in IIS and in ISA Server.

Function or notification Task ISA Server support IIS support
GetServerVariable Yes. Not all variables are supported. ISA Server 2004 provides some variables that are not provided by IIS.
AddResponseHeaders Yes. Headers are added by AddResponseHeaders only for responses generated by ISA Server, where SEND_RESPONSE is triggered. Use SEND_RAW_DATA to add headers to all responses. Yes.
WriteClient Yes. Yes.
AllocMem Yes. Yes.
ServerSupportFunction SF_REQ_ADD_HEADERS_ON_DENIAL Yes. Yes.
SF_REQ_DISABLE_NOTIFICATIONS Yes. Yes.
SF_REQ_GET_CONNID Returns 0. Supported by versions earlier than IIS 4.0; otherwise, returns 0.
SF_REQ_GET_PROPERTY

only for SF_PROPERTY_INSTANCE_NUM_ID

Returns 0. Yes.
SF_REQ_NORMALIZE_URL Yes. Yes.
SF_REQ_SEND_RESPONSE_HEADER Yes. Yes.
SF_REQ_SET_NEXT_READ_SIZE Not relevant to the implementation of ISAPI in ISA Server. Provided for compatibility with IIS. If you use it in an ISA Server Web filter, you should not assume that the number of bytes read during the subsequent read operation will not exceed the value set in the ul1 parameter. Yes.
SF_REQ_SET_PROXY_INFO No. Yes.
SF_NOTIFY_SEND_RESPONSE Not used when the Web proxy sends a response. Used when a filter generates a response using the SF_REQ_SEND_RESPONSE_HEADERS server support function. Yes.

Administration

Administration, setup, and registration are significantly different in ISA Server. For specific information and procedures, see Web Filter Setup.

IIS stores configuration information in the Microsoft Active Directory, whereas the ISA Server Web proxy uses the ISA Server administration COM objects to store and retrieve filter configuration information.

Note  Web filters developed for Microsoft Proxy Server 2.0 are not binary-compatible with ISA Server because of new notifications, setup requirements, and storage functionality.