Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!



ASP.NET Ajax Released

merlin_jim Re:Too many layers! (101 comments)

We have an ASP.NET application running on .NET. .NET is running on the userland Windows subsystems. These subsystems are running on the NT kernel. The NT kernel is then running on hardware.

Just a nit or two but

a. Calling it the Windows NT kernel is a bit of a misnomer - All the vestiges of the NT kernel were removed for the XP / 2003 rewrite...

b. the actual process stack looks like this:

world wide web worker process (w3wp.exe) -> HttpApplication object -> HttpModule object -> .NET runtime -> ISAPI interface -> IIS6 -> windows API -> usermode to kernelmode marshal -> kernel stuff

Unless you're running IIS6 in native kernel mode in which case it looks like this

w3wp.exe -> HttpApplication -> IIS6 -> usermode to kernelmode marhsal -> HttpKernel -> .NET runtime -> kernel stuff

The big advantage of that is of course if the request can be handled entirely by the kernel mode HTTP server (such as a request coming straight out of .NET cache, or one with invalid authentication credentials) then it never hits usermode at all... also vastly simplifies the process model...

I saw a comparison of data caching between the two modes once - it was a 64K page made by concatentating a 1K string and outputting it - the IIS5-style user mode HttpModule handled 40-60 requests per second IIRC... very respectable for running IIS on a laptop with a load client and powerpoint and a half dozen other things going on...

He flipped the switch in machine.config to use kernel mode HTTP handling - hit 1200 requests per second immediately - and it was obvious that the limitation was no longer the server but the load client...

He explained he chose a 64K test page to prove that the kernelmode driver wouldn't have any datapaging problems with caching...

more than 7 years ago


merlin_jim hasn't submitted any stories.


merlin_jim has no journal entries.

Slashdot Login

Need an Account?

Forgot your password?