Configure Request-Processing for a Web Server (IIS 7)

Applies To: Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows Vista

The server components in IIS 7 are the building blocks for request processing and include application pools, modules, and handler mappings, and ISAPI filters. These components let you customize your Web server so that you load and run code for features that you want on the server.

This section includes:

  • Application Pools

  • Modules

  • Handler Mappings

  • ISAPI Filters

Application Pools

An application pool groups applications together, separating them from applications in other application pools by process boundaries. By using application pools to isolate applications, you can improve application security because you reduce the probability of one application accessing another application's resources. Additionally, the separation prevents applications in one application pool from affecting applications in other application pools on the same Web server.

In IIS 7, application pools run in one of two modes: Integrated mode and Classic mode. The application pool mode affects how the Web server processes requests for managed code. If a managed application runs in an application pool with integrated mode, the Web server uses the integrated, request-processing pipelines of IIS and ASP.NET to process the request. However, if a managed application runs in an application pool with ISAPI mode, the Web server continues to route requests for managed code through Aspnet_isapi.dll, processing requests the same as if you were running in IIS 6.0.

For more information about application pools, see Managing Application Pools in IIS 7.

Modules

In IIS 7, there are two types of modules: native modules and managed modules. Native modules are native code DLLs that perform feature-specific work for processing requests. For example, WindowsAuthModule performs Windows Integrated authentication using NTLM, and HttpLoggingModule passes information and processing status to HTTP.sys for logging.

You can only register global modules at the server level, because at this level you tell the server that you want the code to load. You can then add the native module to the Modules list at any level on the server, such as at the site or application level. When you add a native module at a specific level, you enable the module to perform work for requests at that level.

In addition to enabled global modules, the Modules list includes managed modules that can perform request work alongside native modules. By including managed modules, you can take advantage of managed features, such as Forms authentication, for requests to all types of content, not just ASP.NET content.

For more information about modules, see Configuring Modules in IIS 7.

Handler Mappings

In IIS 7, handlers generate responses for requests made to sites and applications. Like modules, handlers are implemented as either native or managed code. When you have a certain type of content in your site or application, you must have a handler that can process requests for that type of content and you must map that handler to the content type. For example, there is a handler (Asp.dll) that processes requests for ASP pages, and, by default, IIS 7 maps the handler to all requests for ASP files.

For more information about handlers, see Configuring Handler Mappings in IIS 7.

ISAPI Filters

Internet Server Application Programming Interface (ISAPI) filters are programs that you can add to IIS to enhance Web server behavior. In IIS 7, modules replace the functionality that ISAPI filters provided in IIS 6.0. However, you can still add ISAPI filters if you require the functionality that they provide. For more information about ISAPI filters, see Configuring ISAPI Filters in IIS 7.