Error message if the AppPoolQueueLength value is too low: "HTTP 503: Service Unavailable"


The Internet Information Services (IIS) 6.0 documentation states that the AppPoolQueueLength property indicates to HTTP.sys how many requests to queue in an application pool before returning the following error message:
HTTP 503: Service Unavailable
Note In the Httperr.log file, you will see error code 503 along with the message "QueueFull". The browser only displays the message "Service Unavailable".

In implementation, however, the property does not behave as described in the IIS 6.0 core documentation.

Note In Internet Information Services 7.0, the AppPoolQueueLength size has been renamed as QueueLength. QueueLength has a default value of 1,000 and is configurable in the Application Pool section of Internet Services Manager.

More Information

The AppPoolQueueLength property controls how many total requests are permitted for the application pool. These include any requests already in user mode, requests that are being processed, and requests that are still queued in the kernel mode HTTP.sys listener.

The default value for this property is 4000 total requests (user and kernel mode requests). The total count of requests for an application pool is only decremented when a request has been completely served. If long-running requests occur in applications, the default of 4000 requests may not be adequate.

To set AppPoolQueueLength to a higher value (for example, to 4500), use one of the following two methods:

Note When you change this value, Microsoft recommends that you test the new value thoroughly because this increase may cause the application to perform poorly because of the additional resources being used by the queuing.
  • Method 1
    1. Click Start, click Run, type cmd, and then press ENTER to open a command prompt.
    2. Change to the %systemdrive%\inetpub\adminscripts directory.
    3. Type the following:
      cscript adsutil.vbs set w3svc\apppools\AppPoolQueueLength 4500
      Important If an application pool has been explicitly assigned a specific value, this command will not override the value. You must set the value at the individual application pool level. For example:
  • Method 2
    1. In the IIS Microsoft Management Console (MMC), right-click the AppPools folder, and then click Properties.
    2. Click the Performance tab.
    3. For Request Queue limit, type 4500.
    4. Click OK.
    5. In the Inheritance Overrides dialog box, select the child nodes that you want to apply the new value to, and then click OK.

ID do Artigo: 816995 - Última Revisão: 30 de jul de 2008 - Revisão: 1