Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What is the purpose of the ASP.NET ISAPI extension aspnet_isapi.dll that is hosted in the worker process w3wp.exe in IIS 6.0 ?

In IIS 5.0, I understood that this ISAPI extension was responsible for handling all requests (aspx etc). It was loaded in the IIS process and was responsible for sending the requests to the ASP.NET worker process aspnet_wp.exe using named pipes.

With IIS 6.0, the requests reach w3wp.exe directly from the kernel and the ISAPI extension is later loaded in this worker process.

In the MSDN article (IIS 6.0) here is says *Aspnet_isapi.dll - Queues requests for processing by the managed code ASP.NET engine and performs health monitoring.*

This confuses me.

  • Aren't the requests already queues @ the kernel level ?

  • Isn't aspnet_isapi.dll unmanged code ? i.e. a regular win32 dll ? And isn't w3wp managed code ?

I am totally lost :-|

Any help would be appreciated !

share|improve this question
up vote 1 down vote accepted

According to this article, if using IIS6 process model, aspnet_isapi.dll isn't used to queue requests, but it is responsible for initialising the the CLR.

When the request arrives, IIS examines the resource type and calls into the ASP.NET ISAPI extension. If the default process model is enabled, aspnet_isapi queues the request and assigns it to the worker process. Any request data is sent through asynchronous I/O. If the IIS 6 process model is enabled, the request is automatically queued to the worker process (w3wp.exe) handling the IIS application pool to which the application belongs. The IIS 6 worker process doesn't know anything about ASP.NET and managed code. It is limited to processing the *.aspx extension and loading the aspnet_isapi module. When the ASP.NET ISAPI works under the IIS 6 process model, it behaves differently and just loads the CLR in the context of the w3wp.exe worker process.

share|improve this answer
Thank you Nexus. – Preets Nov 22 '09 at 17:33
No problem. If this answers your question, would you mind "accepting" the answer? – Nexus Nov 22 '09 at 23:13
Sure ! The article is definitely a find ! – Preets Nov 23 '09 at 11:35

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.