IIS Application Warm-Up Module


First the good news: This module/add-in/extension (pick your favorite naming convention) for Internet Information Services (IIS) is one that helps ease an age old problem: the first user to request a page from a site that’s not currently loaded sees a slow response time.

Now the bad news: it’s no longer available. BUT, before you click away to see what the local weather’s like, I’ve been told from the IIS team that this module will be re-tuned for the next version of IIS (many thanks to all of the Beta testers for their feedback).

So while some of the screens may change and perhaps functionality, let’s go over what in essence this warm-up module can do and some of the benefits it provides.

Benefits

Decrease the response time for first requests by pre-loading worker processes:  The IIS Application Warm-Up module lets you configure the Web application to be pre-loaded before the first request arrives so that the worker process responds to the first Web request more quickly.

Increase reliability by pre-loading worker processes when overlapped recycling occurs: Because the recycled worker process in an overlapped recycling scenario only communicates its readiness and starts accepting requests after it finishes loading and initializing the resources as specified by the configuration, pre-loading the dependencies reduces the response times for the first requests.

Customize the pre-loading of applications: Configuration of the IIS Application Warm-Up module to initialize Web applications by using specific Web pages and user identities. This makes it possible to create specific initialization processes that can be executed synchronously or asynchronously, depending on the initialization logic. In addition, these procedures can use specific identities to ensure a proper initialization.

Installation

The install couldn’t be easier – execute the setup package and presto-change-oh the module gets installed. As of this writing installation can only be completed on Windows7/Server 2008 R2 that has IIS 7.5 installed. No restart of the service was required and functionality was available through IIS immediately.

Main Configuration

There are only two settings to configure on this screen and while they’re pretty straightforward, the one item I will highlight is the second checkbox. If you do not select “Start Application Pool [insert specific application name here] when service started”, warm up occurs when the application pool is recycled, but not after a system reboot or when the IIS service restarts.

Add Request

Next on the list is to configure the actually request itself. Here a “Default.aspx” page will be requested; a status code range is given (if outside the range the module logs it in the event log), a request mode is chosen (synchronously or asynchronously) along with an optional parameter being passed named “WarmUpRequest.” This parameter will be added to the request as a server variable (WARMUPCONTEXT); this lets you check for this request variable in code, which in turn lets can distinguish requests that were sent from the Warm-Up module from regular requests.

User Context

The last setting is whether to specify an identity other than the current process identity that the IIS application pool is using (if applicable). In my example I’m using Windows authentication but there are multiple modes and types to choose from.

Summary

So where do we go from here? Good question. Unfortunately I don’t have a direct answer. I’m certainly going to keep tabs on the development of this module as improving the responsiveness of a web site/application is extremely valuable. More so today as we all have a short attention span so a second here or 3 seconds there could make the difference between a good user experience vs. a bad one (or lost revenue if we’re discussing an ecommerce site). Stay tuned…

To download other Microsoft extensions for IIS, visit: http://www.iis.net/extensions or for more information on IIS visit: http://www.microsoft.com/windowsserver2008/en/us/internet-information-services.aspx

 

Comments (5)

  1. eldran says:

    The module is no more available on the site, the beta is closed. do you know another place where i can download it ?

    thank you

  2. @eldran~ Unfortunately the official D/L site has been taken offline although you may be able to find the installation package elsewhere via a Bing search.

  3. Any further update on this?

  4. @John~ There is no ETA for an OOB release at this time. That said, Scott has a good post on the Auto-Start feature which doesn't have a UI but is none the less very useful: weblogs.asp.net/…/auto-start-asp-net-applications-vs-2010-and-net-4-0-series.aspx.    

  5. Thanks for the link. My current project is SharePoint-based so ASP.NET 3.5. Per Scott's post Auto-Start requires 4.0.