Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

So I've configured IIS8.5 on Win 8.1, like so:

appcmd.exe set config -section:system.applicationHost/webLimits /connectionTimeout:"00:00:03" /commit:apphost

I've verified that the setting appears applied.

I've done an IISRESET (in desperation), but the setting seems to be ignored.

If I telnet to IIS, and don't send any content, I don't get disconnected after 3s as expected.

I actually started all this by trying to get this to work:

appcmd.exe set config -section:system.applicationHost/webLimits /headerWaitTimeout:"00:00:30" /commit:apphost

i.e. for it to disconnect me after not sending all the headers after 30s. That also didn't work - stay connected as long as I like.

I've read the docs ( and am fairly confident the semantics are correct.

Why is the limit not being applied?


share|improve this question
I think you mean IIS 8.5 on Windows 8.1. – Somantra Jun 12 '14 at 15:26
Thanks, corrected. – Nik Jun 12 '14 at 17:23
Did you manage to find the cause for the problem? I am experiencing the same behavior. – Florin Dumitrescu Feb 12 '15 at 15:03
Nope, sorry, never found it. – Nik Feb 13 '15 at 18:26
But we're probably putting haproxy in front of the web servers anyway, and it has fine grained control over these kind of things (see timeout http-request config option) - perhaps that's an option for you too. – Nik Feb 19 '15 at 0:05

The documentation at


Every 60 seconds, a worker process checks how long it has been idle. If its current idle time is greater than the idle time-out value specified by the Windows Process Activation Service (WAS), the worker process initiates a shutdown.

Now, when the proess checks every 60 seconds then - ah - 3 or 30 second timeout makes no sense because it is anyway only checked every 60 seconds. It makes little sense anyway as it bypasses the HTTP 1.1 keepalive attempts to avoid reestablishment overhead.

share|improve this answer
I think you're referring to something else on that page, not the parameters I'm looking at. They even give an example of headerWaitTimeout="00:00:30" – Nik Jun 12 '14 at 17:30
That may or may not be the case. The documentation is not totally clear - but it is all that I have. I am doing web related stuff on and off for a long time and never had a reason to change those values ;) – TomTom Jun 12 '14 at 17:33
Set headerTimeoutOut to 1:10 and applied. No difference - still not getting disconnected. – Nik Jun 12 '14 at 21:27
Timeouts do not work precisely to that limit. Programmers already know that :-) There are also automatic retries built into the .net system that makes the system try some three times before giving up. This means that if you set a timeout of 3 seconds, it could take upto 18 seconds for the process to actually timeout. However, all logs will continue to report that the connection timed out at the configured 3 seconds, confusing the heck out of you. – Sujay Sarma Jun 13 '14 at 13:06

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.