Application Pools

Application Pools

Application Pools

  • Worker process configurations that service groups of namespaces
  • A group of one or more URLs is served by a worker process or set of worker processes
  • All applications in an application pool share the same worker process
  • Applications cannot be affected by applications running in other application pools
    • An application's resources cannot be accessed by applications in other application pools
    • Problems in other application pools do not affect the application

Application Pool Configuration

  • Use multiple application pools to ensure web applications are confidential and secure
  • Assign an application pool mode
    • The mode affects how the server processes requests for managed code
    • The two modes are Classic and Integrated
  • IIS7 can cause Sitecore to restart during index rebuilding when IIS7 is configured to work in Integrated Mode and Sitecore indexes are stored inside the Sitecore Web site root
    • Move the Sitecore indexes outside of the web site root
    • Indicate the new location in the settings section of the web.config file

Classic Mode

  • Full IIS7.x functionality is not available to the web application
  • IIS routes requests for managed code through aspnet_isapi.dll
    • Request processing is done the same as if the application was running in IIS 6.0
    • There is only support for ISAPI extensions and ISAPI filters
    • An .aspx extension is required to tell IIS to pass requests over to ASP.NET
  • ASP.NET acts as an external plug-in to IIS
    • An ISAPI extension (aspnet_isapi.dll) 
    • An ISAPI filter (aspnet_filter.dll)
  • Two pipelines are used to handle requests
    • One for native code
    • A separate one for managed code

Integrated Mode

  • A unified pipeline is used to handle all http requests
    • Services provided by both native and managed modules apply to all requests
    • Authentication is only performed once, instead of by both IIS and ASP.NET
    • Authorization is only performed once, instead of by both IIS and ASP.NET
  • ASP.NET sees every relevant request and manipulates things as needed
    • An .aspx extension is not required to pass requests over to ASP.NET
    • ASP.NET runs more efficiently resulting in better web site performance
  • IIS searches the HttpHandler registrations under the <system.webServer> configuration section instead of the standard <system.web> configuration section of the application configuration file