В прошлом я использовал сценарии разминки
http://programmerramblings.blogspot.com/2008/09/aspnet-site-warmup.html
Подобное решение будет "пинговать" страницу. Этот «пинг» приведет к активации вашего кэша. Это также предотвратит попадание пользователей на холодный веб-сайт, поэтому к тому времени, когда они туда попадут, страницы будут полностью загружены.
Изменить: Я до сих пор не знаю, что я чувствую по поводу запаха следующего решения, но как насчет запуска веб-запроса при запуске приложения на каждой странице?
string[] cachedPages = new string[] { "http://...", "http://...", ...};
foreach (var url in cachePages) {
var request = WebRequest.Create(url);
request.BeginGetResponse(null, null);
}