SharePoint 2007 “Warm Up”

I was running into an issue where the initial connection to a SharePoint 2007 server was taking between 20 to 40 seconds. Once the first page of the SharePoint site loaded the server had a very acceptable response speed. So what was causing that initial delay each morning? The answer is actually quite simple if you understand the basics of ASP.NET. The first time a user visits an ASP.NET application, such as SharePoint, the framework performs some compiling and caching on the server. This compiling and caching requires a bit of time to accomplish and once completed the application will respond much quicker.

The compiling and caching always occurs after an IISRESET is issued or the application pool is recycled for an application. In the case of my SharePoint installation, the application pool recycles every morning at around 1am. This means that the first person to hit the SharePoint site in the morning always experiences what they perceive as poor performance of the server. After that initial page hit the system performed with very acceptable speed. I did a few searches on the internet to see how others are resolving this issue. One solution I saw was to schedule a "warm up" script to automatically do an HTTP get request against a couple pages on the SharePoint site. This looked very promising; however, I was soon disappointed when the script appeared to not have any impact on the performance of my server. I soon figured out the reason is that the script was doing an anonymous HTTP get request and my SharePoint site required user credentials to log in. This gave me an idea… how about creating a simple .NET console application that can perform an HTTP get request using credentials.

So I set off to create the utility. The initial version was quite basic. It accepted 3 parameters; a URL, a username and a password. The utility would make a get request based on the URL and would do that using the provided credentials. This was a good start, but I was a bit worried about security. I really didn’t want to have a username and password sitting visible in a "warm up" script on the server. I went back and modified the utility so that a user could register a URL with its username and password. This information is stored in an XML configuration file with the password encrypted. Now the utility can run and perform a HTTP get against the SharePoint site without exposing the password in plain text on the server’s file system. Very cool stuff.

I took the utility, registered my SharePoint server URLs and passwords and then created a simple batch file to call the utility. This batch was then scheduled on the server to run in the mornings on a daily basis. Since implementing this script and utility the users have been very happy with the performance of SharePoint.

I have zipped up the utility I created and have placed it on my server for download. Feel free to download and use the utility in your environment.

A note about security: although the password is encrypted in the XML file it is still not 100% secure. You should apply appropriate permissions on the directory where this utility resides to prevent non-administrators from gaining access. You assume all responsibility for any security vulnerabilities, problems, or damages caused by using the utility.

So how do you use this utility? Unzip it into a directory, open up a command prompt, switch to the directory where the utility resides and then execute the command httpgetwithpwd. This will provide you with an overview of the options. Most likely the first thing you will want to do is to register a URL with its username and password. You do this with the following command:

Httpgetwithpwd [URL] [username] [password]

Replace [URL],[username] and [password] with the appropriate values.

Now to have the utility do an HTTP request,just call the utility with the URL. For example:


This will do an HTTP get for the specified URL using the stored username and password.

You may be wondering where the URL, username and passwords are stored when you register them. An XML file will be created in the same directory as the utility that contains the URL information. You can open this file and see that the password is encrypted.

It may be tempting to register several URLs and then copy the configuration XML file to another server to use with the httpgetwithpwd utility. Be aware that this will not work. The encryption locks the configuration file to the server it was created on. Using the configuration file on another server will result in an invalid password being passed to during the HTTP get process.

This utility was created in a very short time span and doesn’t have a robust error handler and it won’t prevent you from registering a URL multiple times. Be smart about how you use the utility and it will work well for you.

0 thoughts on “SharePoint 2007 “Warm Up””

  1. Belts Caps Clothing Glasses Handbags Shoes Wallets Watches Adidas Asics Bape Stars Christian Louboutin Clarks Sandal Converse Dolce Gabbana Dsquared 2 Gucci Ice Cream Lacoste Louis Vuitton New Balance Nike Prada Puma Supra Timberland Boots UGG Boots Belts Catalog Caps Factory Clothing Shop Glasses Wholesale Handbags Supplier Shoes Catalogue Wallets Discount Watches Original
    —————————————————————— Belts Caps Clothing Glasses Handbags Shoes Wallets Watches Adidas Asics Bape Stars Christian Louboutin Clarks Sandal Converse Dolce Gabbana Dsquared 2 Gucci Ice Cream Lacoste Louis Vuitton New Balance Nike Prada Puma Supra Timberland Boots UGG Boots Belts Distributor Caps Outlet Clothing Cheap Glasses Wholesaler Handbags Business Shoes Custom Wallets Selection Watches Manufacturer

  2. Mitac mim2120 Battery Sony pcga-bp2e Battery Sony pcg-tr3 Battery Sony vgp-bpl2 Battery Sony vgp-bpl2c Battery Sony vgp-bpl5a Battery Sony vgp-bps2 Battery Sony vgp-bps2a Battery Sony vgp-bps2b Battery Sony vgp-bps2c Battery Sony vgp-bps5 Battery Sony vgp-bps5a Battery Toshiba nb100 Battery Toshiba pa2487 Battery Toshiba pa3128u Battery Toshiba pa3191u Battery Toshiba pa3191u-1brs Battery Toshiba pa3206 Battery Toshiba pa3285u-1bas Battery Toshiba pa3285u-1brs Battery Toshiba pa3285u-3bas Battery Toshiba pa3331u-1bas Battery Toshiba pa3331u-1brs Battery Toshiba pa3356u Battery Toshiba pa3356u-1bas Battery Toshiba pa3356u-1brs Battery Toshiba pa3356u-2brs Battery Toshiba pa3356u-3brs Battery Toshiba pa3383 Battery Toshiba pa3383u-1brs Battery Toshiba pa3395u-1brs Battery Toshiba pa3399u-1bas Battery Toshiba pa3399u-1brs Battery Toshiba pa3399u-2bas Battery Toshiba pa3399u-2brs Battery Toshiba pa3420u Battery Toshiba pa3421u-1brs Battery Toshiba pa3451u Battery Toshiba pa3451u-1brs Battery Toshiba pa3456u-1brs Battery Toshiba pa3465u-1brs Battery Toshiba pa3479u-1brs Battery Toshiba pa3480u-1brs Battery Toshiba pa3533u-1bas Battery Toshiba pa3533u-1brs Battery Toshiba pa3534u-1bas Battery Toshiba pa3534u-1brs Battery Toshiba pa3535u-1bas Battery Toshiba pa3535u-1brs Battery Toshiba pa3536u Battery Toshiba pa3536u-1brs Battery Toshiba pa3537u-1bas Battery

Leave a Reply