ASP.NET
Pipeline Architecture
The HTTP pipeline always processes requests in an
instance of the worker processes. By default, there will only be one worker
process in use at a time. (If your Web server has multiple CPUs, you can
configure the pipeline to use multiple worker processes, one per CPU.) This is
a notable change from native IIS, which uses multiple worker processes in order
to isolate applications from one another. The pipeline's worker process
achieves isolation by using AppDomains. You can think of an AppDomain as a
lightweight process within a process. The pipeline sends all HTTP requests
targeting the same virtual directory to a single AppDomain. In other words,
each virtual directory is treated as a separate application. This is another
notable change from native IIS, which allowed multiple virtual directories to
be part of the same application.
ASP.NET supports recycling worker processes based on a number of criteria,
including age, time spent idle, number of requests serviced, number of requests
queued, and amount of physical memory consumed. The global .NET configuration
file, machine.config, sets thresholds for these values (see the processModel
element). When an instance of aspnet_wp.exe crosses one of these thresholds,
aspnet_isapi.dll launches a new instance of the worker process and starts
sending it requests. The old instance terminates when it finishes processing
pending requests. Recycling of worker processes promotes reliability by killing
off processes before their performance begins to degrade from resource leaks or
other runtime phenomena.
No comments :
Post a Comment