I am using IIS6.0 on a Windows 2003 SP3 VPS.
When I access an ASP.Net website on that server, i.e. http://website.example.com/ it takes over a minute to load. If I load a standard website that's just HTML, it loads instantly.
Once the site has been successfully opened in one browser on a machine, all the other browsers can open the page straight away.
If I leave it for approximately 30 minutes I have to wait a long time again to load the site. I've tried this on 5 different machines on 3 different Internet connections. Each different machine has to wait for the site to load, even when another has already opened it.
The ASP.Net sites I am testing are single pages, with no actual code. The page should load in about 0.25s on a 2Mb/s connection.
Any ideas what's wrong with the server to cause this behaviour and how can I fix it?
Edit:
I nuked the server and started it again with a new image. The same thing happens with 2 different asp.net websites that both load instantly on another server when tested.
I've been down this road before and it wasn't actually the compile time. It was due to a broken component in IIS. Removing and reinstalling IIS fixed it. In our case I remember that I found a Microsoft technote describing it. Trying searching MS.
A minute seems like a long time for compilation... is this your own site where you can share some more info about what's in the source.
Pre-compilation of the site may be an option - you can try running perfmon to see what's causing the bottleneck whilst it compiles - you may find it's stuggling with disk activity as it builds the site. You mention VPS - what specs are your server?
This is due to the in-time compilation of the page. Notice if you alter the code of a page you will incur the same delay while it compiles the page.
I had similar problems with unusable applications on IIS on production environment. A single web application with one app pool was running extremely slow.
I just set the property "Enable 32-bit applications" flag to true in the advanced settings of my app pools and now I can run 3 web applications with 3 distinct app pools.
More detailed instructions here: http://forums.iis.net/t/1189907.aspx/1