[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now


"Server Too Busy" error that never recovers on IIS 5.0 ASP.NET

Posted on 2005-05-05
Medium Priority
Last Modified: 2011-10-03
We are running ASP.NET version 1.1.4322 on a server running IIS 5.0 (Windows 2000 Professional). We are also concurrently running the old ASP 3.0 engine.

For the last month, we've run into times of the day in which ASP.NET pages are inaccessible and relay "Server Too Busy" errors to our clients.  The performance Monitor yields no clues --everything looks great...no requests in queue, no open sessions, nothing.  The Event Viewer is equally without red flags.  While ASP.NET pages are inaccessible, ASP 3.0 are readily accessible and run perfectly.

If it were truly traffic-related and we legitimately did hit 100 or more concurrent requests in queue to generate the "Server Too Busy" error, it would seem that AFTER these requests were fulfilled, the people would reach our site.  However, once these errors start accumulating, our site remains down, forcing us to reboot the server.

Our httpRunTime attribute values are as follows:


The server itself is running Windows 2000 Service Pack 4 with Intel Xeon Pentium 4, 2.80 MHZ with 1.5 gigabytes of RAM and 46 gigabytes of free disk space.
Question by:cacklebunny

Expert Comment

ID: 13948372
Hi cacklebunny,
      Are there any runaway processes in your Task Manager when this is happening?   By this I mainly mean the size not the CPU usage.   look for dllhost especially.    The problem could (also) be caused by calls to a database that are not happening as they should, and not be dropped when they are supposed to.   Usually these database calls are done with a com object which would create a dllhost process, but sometimes they are not, and may not have one.  I have run into this problem both ways.

Steven Stuart
LVL 14

Expert Comment

ID: 13952742
Windows 2000 Professional = desktop software = 10 concurrent connections maximum.  Did you mean Windows 2000 Server?
If you're running desktop software you might be hitting this limit.

Author Comment

ID: 13962268
That is correct:  we are using Windows 2000 Server edition, not Windows 2000 Professional.  Sorry for the confusion.

With regard to the Task Manager processes, we don't typically see anything unusual running there...and no DLLHOST call.

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

LVL 14

Expert Comment

ID: 13964363
no problem, just wanted to clarify the original question.
LVL 14

Expert Comment

ID: 14000788
Hi cacklebunny, didn't mean to desert you, have been having email problems the last couple of days.

The most common reason for this is that queued requests are hitting a value called requestqueuemax.  When this point is reached the "server too busy" notice will display.  You're going to need to look at tuning your IIS server to get around this.  
You can setup performance monitoring to see for sure if this does apply, the following articles give some instruction on performance tuning IIS so you can keep queued requests below requestqueuemax.

Have a read, try some performance monitoring to identify what exactly's happening, do a bit of a tune up and if you've got more questions about it let me know.
LVL 14

Expert Comment

ID: 14150749
without feedback from asker, I would assume my last post was the solution...
LVL 20

Expert Comment

by:Michel Sakr
ID: 14194352
I don't think so alimu.. he is not having any problems with ASP.. it is ASP.Net that is returning the error..

Reduce Server Too Busy errors with the httpRuntime tag
The httpRuntime tag in ASP.NET configuration files lets you determine several features of ASP.NET at the machine or site level, including the how ASP.NET uses multi-threading. Here's the complete syntax for this tag:

<httpRuntime executionTimeout="seconds"
             useFullyQualifiedRedirectUrl="true|false"  />

minFreeThreads is the minimum number of threads that must be free for ASP.NET to accept a request. The default value is 8, so ASP.NET normally rejects a request if there are 7 or fewer free threads. This setting lets you prevent stalls when your site accepts a request that creates additional threads. On the other hand, if you know that your .aspx pages don't spawn additional threads, or spawn fewer than 7 threads, you can decrease this value and indirectly let ASP.NET server more pages at the same time. This trick can significantly improve your site's scalability.
minLocalRequestFreeThreads is like the minFreeThreads attribute, but it's applied to local requests, which often issue child requests.

Finally, appRequestQueueLimit is the maximum number of requests that ASP.NET can queue for the application when there aren't enough free threads to serve it. Any request that arrives when the queue is full is rejected with a 503-Server Too Busy error. You can safely increase this number if your typical .aspx page takes a very short time to complete.

LVL 20

Expert Comment

by:Michel Sakr
ID: 14194360
so the httpRuntime tag will overrid the requestqueuemax, thus ASP.Net is returning errors due to the limits on the httpruntime tag that are it seems lower than the requestqueuemax limits..

LVL 14

Expert Comment

ID: 14194464
Michel, thanks for adding another possible solution, it's good to have an ASP.NET development perspective on the problem, I tend to focus on server side solution so if a code-based solution is required it's not for me.
The problem remains that the author hasn't responded either to my comment or the question abandonment comments.  I'm not sure if they have fixed the problem or not.

Accepted Solution

modulo earned 0 total points
ID: 14204524
PAQed with points refunded (150)

Community Support Moderator

Featured Post

NFR key for Veeam Agent for Linux

Veeam is happy to provide a free NFR license for one year.  It allows for the non‑production use and valid for five workstations and two servers. Veeam Agent for Linux is a simple backup tool for your Linux installations, both on‑premises and in the public cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

What is an ISAPI filter?   •      It's an assembly (.dll file) that can add or change the way IIS works.   •      They can be enabled globally for your web server or on a site-by-site basis.   When the IIS server receives a request, enabling the ISAPI fi…
As tax season makes its return, so does the increase in cyber crime and tax refund phishing that comes with it
Exchange organizations may use the Journaling Agent of the Transport Service to archive messages going through Exchange. However, if the Transport Service is integrated with some email content management application (such as an anti-spam), the admin…
Look below the covers at a subform control , and the form that is inside it. Explore properties and see how easy it is to aggregate, get statistics, and synchronize results for your data. A Microsoft Access subform is used to show relevant calcul…
Suggested Courses

873 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question