In one of my website builds, I needed to output around a couple thousand records from a database permanently into the .NET cache. Even though I set the cache to never expire, it will get cleared whenever the application pool recycles (currently set to every 24 hours). As you can expect, if a user happens to visit the site soon after the cache is cleared, excess page loading times will be experienced.
The only way I could avoid this from happening is by setting up a Scheduled Task that would run a script that would carry out a web request straight after the application pool was set to recycle.
Luckily, I managed to find a PowerShell script on StackOverflow that will do exactly that:
$request = [System.Net.WebRequest]::Create("")
$response = $request.GetResponse()
$response.Close()