What Is the Difference Between an ISAPI Server Extension and a Filter?

OverviewHow Do IFAQDetailsSample

A server extension: A filter:
Runs when referenced in a URL. Is called for every URL the server processes.
Is explicitly invoked, for example by http://myserver/myprog.dll?. Runs automatically for any URL sent to the server if the registered event occurs.
Is loaded on demand, the first time a user calls it. Is loaded when the service starts because of its registry entry.

Both server extensions and filters:

  • Share the process space of the service.

  • Must be thread safe.

  • Once loaded, remain in memory (until the service is stopped or the memory is needed by another process).