Warming up an IIS Application Pool automatically?

Solution 1:

I have answered a similar on StackOverflow.

Microsoft moved the warmup feature to IIS 8, but they have also released the Application Initialization Module for IIS 7.5 as a separate download.

The feature I think is most compelling is that this module also enables overlapped process recycling. The following tutorial from IIS 8.0 include a step-by-step approach on how to enable overlapped process recycling.

Solution 2:

How about the Autostart feature - does that accomplish what you're looking for? Short of that, you could script something in the OS startup to make that first HTTP call on server startup - you'd want the script to know that (or wait for) IIS is up and responding before firing the request. Here's some ideas for those scripts. In fact, there's a lot more content for this topic over on SO than here on SF.

Solution 3:

You can follow these steps:

  1. Edit %WINDIR%\system32\inetsrv\config\applicationHost.config
  2. In the <applicationPools> tag, find the relevant app pool of your site and add the attribute: startMode="AlwaysRunning".
  3. Add the attribute preloadEnabled="true", like this: <sites> -> <site> -> <application preloadEnabled="true">

Don't forget to backup the file before the changes.

Solution 4:

have a look ath this post: http://blogs.msdn.com/b/amol/archive/2013/01/25/application-initialization-ui-for-iis-7-5.aspx

It worked for me, I needed to activate a web application automatically since it hosted a net.Tcp WCF service that, when called , would not start the application up since this happens only when using the HTTP protocol. Yuo download the tool and after installing it you'll have an additional applet in IIS manager to handle application initialization for applications and sites. Remember to order the applets by name since it can be useful to spot in the myriad of icons in IIs manager....