We have an ASP.Net Web Application that is running in an IIS Web-Garden--which is configured to allocate up to four processes. In our Web Application the first user that hits the site causes the loading of all of the cached items. Since we are running in a IIS Web-Garden it ultimately takes up to four first time users to build up the cache for each of the four Web-Garden processes. This cache building takes 30-40 seconds, we've tried to make it faster, but it's unlikely that that can be improved any more.
This is unacceptable, we have been tasked with making the site fast for everyone all the time (no waiting for cache initialization). I would like to employ a solution that crawls the site to pre-heat the cache. The problem is that the Web-Garden feature appears to be a black box--you have no way of controlling if/when IIS will decide to load that 2nd, 3rd or 4th process when hit with the next HTTP request.
To me this seems like a common problem, but searching for a solution has yielded little results. My question is, is there a way through HTTP headers or some other construct to give IIS a hint, that you would like it to load or at least route to process 2,3,4 etc?