What Are Some Memory and Resource Considerations?

OverviewHow Do IFAQDetailsSample

Must My Application Be Thread-Safe?

Yes. ISAPI runs as part of the Web server. On a multithreaded server such as Microsoft Internet Information Server, your application runs in the context of an NT service. Your application may be concurrently called multiple times from different threads. Data must be protected by critical sections.

How Can I Plan For Handling Simultaneous Requests?

ISAPI DLLs should support multiple simultaneous requests, and it is the responsibility of the ISAPI DLL developer to ensure that critical data is protected.

Web servers are built to concurrently handle multiple requests. Your application plus many others will be using the server. Client traffic of millions of users is seen daily at busy sites such as www.microsoft.com and popular search engines. Users want fast response, and they will cancel the request if it takes too long.

As mentioned earlier, be thread-safe. Do not hold on to resources or connections unless you need to. Don’t use global variables.

When you get a filter notification:

  1. Process the message quickly.

  2. Pass it along to the next filter.

  3. Don’t request high-priority notification unless you need to: for example, if you have an authentication filter that must run first, or if you are providing or preprocessing data used by other filters.