I got this very odd situation on my application which not all the time most of scripts I include in the <head>
is not loaded, but some times they are. If I will refresh the page (either f5 or refresh button), sometimes it loads sometimes it's not. But if I enter the URL directly to the address bar, the page loads as expected. This happens not only in one page but in most pages but intermittently. My application is deployed on my local IIS version 5.1 (i'm using XP SP3). Mostly this situation happens if I rebuild my solution or I restart my IIS to refresh my IIS cache or to restart my Application. My guess is that my IIS don't have enough memory to process all the request at a time that it forgot to load all of the included scripts. Can anyone shed some light on where I should look to solve this kind of problem? At first it only happen on my machine, but lately I've noticed that it happens to our dev server also, I don't want it to go our test server or worse at the production server.
EDIT:
Here's how I determine the scripts that are not loaded.
- I don't have any changes on any scripts, css what so ever that is directly seen on the client side. I only change a bit of code behind logic that wont change a bit on what the client user can see on UI. When I build it and test it on browser directly using the local IIS, my display has been corrupted, some scripts will not function and some page metho开发者_开发问答ds errors shown.
- If I refresh the page, once or many times, the page will displace normally. As soon as I notice this, I already know that this is a cache problem.
- I've used firefox and seen the same thing, so I've viewed the source. At first I didn't notice anything suspicious and everything seems normal until I clicked each include on the pages, css and scripts. Some of it are not read instead it returned an html containing
The page cannot be displayed, There are too many people accessing the Web site at this time.
Once I noticed the return of some include scripts and css on the source which they return The page cannot be displayed, There are too many people accessing the Web site at this time.
which is 403 error or Access forbidden, I wonder why access is forbidden, so I've done some research on my own and found out that IIS 5.1 on XP system only allows a maximum of 10 concurrent keep-alive connection, so if the page is not cached yet or part of the page, it requests to the IIS and there are times that the first request is not done and another request is being made which stuck up to 10 concurrent request, the IIS will return an 403 error to those last requests until, the first request is done and opens another connection.
For IIS5.1 in XP system, I can't do anything but to accept the fact that it only accepts 10 concurrent request, but for IIS6+, I found this article that it can handle up to 3,000 concurrent connections easily and could go more without limits depending on the Hardware resource of the machine, and some tweaks on the settings.
精彩评论