Securing:
Scripting
Requests come into the queue (ServerListenBacklog) via a socket on a
port(MaxEndpointConnections). As threads are available to execute the requests,
the are de-qued and assigned. If the thread needs to wait for something else,
it is blocked. When all threads are blocked, no more requests can be processed
and the que grows. Threads may be blocked by lack of processor time
(ProcessorThreadMax), an external resource (such as an SQL server) or a component
on the same server which is external to IIS. The queue exists to handle
short-term spikes, ensure response time by deleting requests that have waited
to long (ASPQueueTimeout), and throttle the system to avoid overload with
sustained, unexpected spikes by limiting the number of requests that may
wait in the que (RequestQueueMax).
http://techref.massmind.org/techref/inet/iis/iis/default.htm
Every so often, IIS 4 will start exibiting strange behaviors that fall in to one of two catagories: A) it will shut down for no apparent reason without any error messages or continue running but consume all the processors cycles (100% Processor Time) or B) it will start throwing error messages that don't make any sense.
If you get the error messages, you can generally look them up in the Microsoft Knowledge Base (MSKB) and find a solution. For the sudden shut down and hangs, you will find it very hard to find a solution with Microsoft. They have information on finding a buggy component or script (which may also cause these problems) but they will not tell you to do the following, which has solved the problem for me every time....
...simply rebuild the site definition in the IIS 4 manager. E.g. if you have a site called "default" then make a new one called "default2" and set it up just like the first. Then stop default and start default2. I believe this is related to the "corrupt metabase" issue that is addressed on the MSKB, but their instructions for correcting the problem did not work for me.
Another problem with CPU overload is caused by Index Server
And it would appear that waiting for a response from an overloaded SQL server can cause the number of Current Anonymous Users to climb skyward while the web servers CPU stays quite. If you don't have a max users limit set, the web server will eventually "500 Internal Server Error" and just sit there like a lump. I'm experimenting with reduceing the connection and command timeouts for the ADO objects
As per Q235461:
Rather than let ASP pages hold forever waiting for the CPU to get to them, you can set a parameter that kills ASP page requests older that some time; The AspQueueTimeout property specifies the amount of time (in seconds) that an ASP script request is allowed to wait in the queue. When requests are pulled from the queue, they are checked to see if they have expired (have waited longer than the value of this parameter). Expired requests are rejected with a message indicating the server is too busy. From the \system32\inetsrv\adminsamples folder, type:
cscript adsutil.vbs set w3svc/1/AspQueueTimeout 30The ServerListenBacklog property specifies the number of outstanding sockets that can be queued. The value is based on the AcceptEx operating system parameter, and the server size specified in the ServerSize property. Valid values for this property range from 5 to 500
cscript adsutil.vbs set w3svc/1/ServerListenBackLog 500The MaxEndpointConnections property specifies the maximum number of "listen" sockets that will be aggregated on a network endpoint. For example, if this value is set to 15, then a maximum of 15 total connections can be made to a single port, even if more than one domain is bound to the port.
cscript adsutil.vbs set w3svc/1/MaxEndPointConnections 500
See also:
THIS WEEK'S BACKOFFICE TIP of ZD JOURNALS. For a PREVIEW issue, go to
http://www.zdjournals.com/forms/asp/cuvyeu.htm
Deleting crap folders and files in Windows NT
Server Application Error: The server has reached the maximum recovery limit for the application during the processing of your request. Please contact the server administrator for assistance.
Can RRAS be used to implement a dynamic firewall?