0

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.

4 Answers 4

2

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.

2
  • Thanks, I'll try to find it. If not I'll tell my provider to do it.
    – djdd87
    Jul 17, 2009 at 12:15
  • I nuked the install and tried again. It's the same problem. The only difference between the old server that works and the new server that doesn't work is that the old server is 32-bit and the new server is 64-bit.
    – djdd87
    Jul 18, 2009 at 18:44
1

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?

6
  • The site is already precompiled on publish. The server is an 8-way Quad Core 2.1GHz AMD Opteron with 1024MB of RAM. This is my own site. Like I said, there is no code in the site. The only code is an empty Page_Load Event.
    – djdd87
    Jul 17, 2009 at 12:10
  • pre-compiled is (somewhat) irrelevant, because the first request to the page still has to load up a new app_domain, even for pre-compiled sites. The question here is if this slowness is after changes to site. If you use the same unchanged site, does it stay so slow? Or could it maybe be a database query or other bad long-running code that's slowing you down?
    – Joel Coel
    Jul 17, 2009 at 12:45
  • Loading a new app_domain shouldn't take that long so there must be some other aspect going wrong./ I'm presuming that this site tests out fine when it runs locally - are there any extra handlers/modules loaded in the config etc - what content is actually on the page?
    – Chris W
    Jul 17, 2009 at 14:21
  • Like I said, there is NO CODE at all running on the site. There is an empty Page_Load event. There is one page with a few pictures and about two paragraphs of text. It's just an example design for my employer. I thought I'd fixed it by adding the IIS_WPG Group to the security, but it's still not loading in under a minute. There is an error like follows in the Event Logs which is why I added the IIS_WPG group: Failed to execute request because the App-Domain could not be created. Error: 0x80070005 Access is denied.
    – djdd87
    Jul 18, 2009 at 7:20
  • Have you set the default app pool to use a custom user account and/or set-up a custom app pool to run the site. Permission errors can occur where the account running the site doesn't have permissions to the temp asp.net files folder in the framework folder under %SYSTEMROOT%.
    – Chris W
    Jul 18, 2009 at 7:51
0

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.

0

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .