Tuesday, November 3, 2015

IIS - Worker Process, ISAPI Extension, Application Pool, Web Farm & Web Garden

Application Pool:
An application pool is a group of one or more web applications that are served by a worker process(w3wp.exe) or set of worker processes.
OR
An application pool is a group of one or more worker processes, configured with common settings that serve requests to one or more applications.

Means n number of web application can be served by n number of worker process using same application pool. Applications within an application pool shares the same worker process.

You can also create multiple application pools to isolate multiple web application. This way you will be able to apply different level of security on multiple apps. Also an error in one app will never affect other applications.

Worker Process(w3wp.exe):
Application pool passes every request to worker process. Worker process (w3wp.exe) checks the URL of the request to load the correct ISAPI extension. ISAPI extensions are the IIS way to handle requests for different resources(like images, javascript, css, aspx, ashx etc). When we install asp.net, its ISAPI extension (aspnet_isapi.dll) and adds its mapping in IIS.

ISAPI Extension:
ISAPI Extensions are true applications that run on IIS. They have access to all of the functionality provided by IIS. ISAPI extensions are implemented as DLLs that are loaded into a process that is controlled by IIS. Clients can access ISAPI extensions in the same way they access a static HTML page.

Web Farm:
A Web Farm is group of servers acting as a single server. It could be a setup of multiple servers work togather to host a single website(or any other application). A load balancer can be used to devide traffic between various servers.

Web Garden:
By default each and every application pool contain single worker process. But we can change associated worker process. An application pool with multiple worker process is called Web Garden. Following is the way to manage number of worker process in IIS:

1. Go to IIS(inetmgr).

2. Click on Application Pools.
3. Right click desired Application Pool.
4. Go to Advance Settings.

5. Increase Maximum Worker Processes.

No comments:

Post a Comment