Quantcast
   
Titan CMS online support, find help and get answers

Improving Performance - HTTP Pipeline Configuration

  • Published: October 05, 2008
  • |
  • Updated: April 01, 2013
  • |
  • Version: 7
 Summary

The ASP.NET platform, at its highest level of abstraction, is processing requests through a series of modules termed the HTTP Pipeline. Many of the steps in this pipeline are enabled by default, and are not utilized by a standard Titan managed website. This article is intended to give information on configuring the Titan CMS Display application to disable unneeded steps in the HTTP Pipeline, in order to improve performance.
 

 Background

The scope for this article is related to HttpModules used by the Titan CMS Display website. HttpModules are one of the two primary elements that make up the ASP.NET HTTP Pipeline. By disabling some of the default Modules, it is possible to reduce overhead on website requests and increase throughput on a Titan CMS website.

 

HTTP Modules

HttpModules are .NET components that are used in the ASP.NET request processing pipeline, whose code is executed in response to certain events in the request lifecycle. ASP.NET uses HttpModules to perform essential processing behaviors that can affect access and preparation of resources for the request.

The following HttpModules are present by default, and can safely be disabled for the Titan CMS Display. These modules have been disabled as a part of the Titan CMS installation in versions v4.5 and later.

  • WindowsAuthentication
  • PassportAuthentication
  • AnonymousIdentification
  • FileAuthorization

Additionally, the following HttpModules are present by default, and should be disabled selectively, only if the related features of ASP.NET are not required.

  • RoleManager
    Must be enabled if using the .NET Role providers for managing custom user security settings for other .NET applications running on the Titan CMS website
  • UrlAuthorization
    Must be enabled if static .NET resources are being accessed and require user authorization at an OS level
  • Profile
    Must be enabled if using ASP.NET Profile properties to store user-specific preferences or data for use in a .NET application running on the Titan CMS website
  • ServiceModel
    Must be enabled to process WCF service requests made by a .NET application running on the Titan CMS website

The following HttpModules are present by default and should not be disabled as they are required for the Titan CMS Display to operate.

  • OutputCache
  • Session
  • FormsAuthentication
  • ErrorHandlerModule
 Instructions

Important: Disabling any of the default HttpModules to improve Pipeline performance will obviously cause some features of ASP.NET to stop working. Keep this in mind when troubleshooting custom functionality that may be affected by a disabled an HttpModule.

Important: This article describes modifications that should be made to the web.config file. Modifying a web.config file on a running ASP.NET application causes the ASP.NET worker process to recycle. As a result, all user sessions will be dropped.

In order to disable HttpModules, you must modify the web.config file for the Titan CMS Display application that makes up your website.

  1. Open web.config in a standard text editor. The location of the file will vary in different installations, but in the standard installation can be found at:

    C:\inetpub\wwwroot\Titan\Display\web.config
     
  2. Locate the <httpModules> element in <system.web>
  3. Insert a <remove … /> tag for each HttpModule that you want to disable.

    <system.web>

       <httpModules>
          <!-- Remove unnecessary Http Modules for faster pipeline -->
          <remove name="WindowsAuthentication" />
          <remove name="PassportAuthentication" />
          <remove name="AnonymousIdentification" />
          <remove name="FileAuthorization" />
          <remove name="UrlAuthorization" />
          <remove name="RoleManager" />
          <remove name="Profile" />
          <remove name="ServiceModel" />
       </httpModules>

    </system.web>

     
  4. Save the changes and test the website.
 References

Improving .NET Application Performance and Scalability
http://www.microsoft.com/downloads/details.aspx?FamilyId=8A2E454D-F30E-4E72-B531-75384A0F1C47&displaylang=en

The ASP.NET HTTP Runtime
http://msdn.microsoft.com/en-us/library/aa479328.aspx