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

Posted on 2005-05-05
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 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
    LVL 8

    Expert Comment

    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

    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.
    LVL 2

    Author Comment

    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.
    LVL 14

    Expert Comment

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

    Expert Comment

    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

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

    Expert Comment

    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

    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

    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

    PAQed with points refunded (150)

    Community Support Moderator

    Featured Post

    Better Security Awareness With Threat Intelligence

    See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

    Join & Write a Comment

    Logparser is the smartest tool I have ever used in parsing IIS log files and there are many interesting things I wanted to share with everyone one of the  real-world  scenario from my current project. Let's get started with  scenario - How do w…
    If you don't have the right permissions set for your WordPress location in IIS, you won't be able to perform automatic updates. Here's how to fix the problem.
    Migrating to Microsoft Office 365 is becoming increasingly popular for organizations both large and small. If you have made the leap to Microsoft’s cloud platform, you know that you will need to create a corporate email signature for your Office 365…
    This video is in connection to the article "The case of a missing mobile phone (". It will help one to understand clearly the steps to track a lost android phone.

    732 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

    Need Help in Real-Time?

    Connect with top rated Experts

    18 Experts available now in Live!

    Get 1:1 Help Now