Recently, We had a website that didn’t have frequent visitors, but when the visitors did come, the website would take a long time to load up the first time. This is expected behavior because IIS shuts down its worker threads.
1 approach would be to set the IdleTimeout to 0 which means the threads are never aborted (details here: http://technet.microsoft.com/en-us/library/cc771956(v=ws.10).aspx). Instead of that though I decided to try my hand at PowerShell and came up with the following script:
1: # List of URLS to Ping2: $urls = @("Http://URL1.com", "https://URL2.com")
3: 4: #Ping all URLs in the list
5: foreach ($objItem in $urls) {
6: $req=[system.Net.HttpWebRequest]::Create($objItem); 7: $res = $req.getresponse(); 8: $stat = $res.statuscode; 9: $res.Close(); 10: 11: #Pump it out to a text file
12: $res | Out-File pingresults.txt -append 13: }After that I set up a simple scheduled task to execute this at 15 minute intervals during business hours and walk away. Since I can schedule this when users are likely to hit the site, I have a customized “keep awake” script that provides more flexibility.
Enjoy!
Comments
Post a Comment