I'm using IIS (on Windows 2003) and have placed a dummy.html in my default web site. The file is empty.
I'm using wfuzz to access this file a large number of times (wfuzz does HTTP requests), with the following command:
wfuzz.exe -c -z range -r 0-5000 "http://localhost/dummy.html"
I run 5 parallell wfuzz for some minute, and then IIS stops responding. When this happens, I can no longer telnet localhost on port 80. If I stop the wfuzz clients and wait for a minute, I can telnet port 80 again.
I only see this problem if I have selected Enable HTTP Keep-Alives in IIS. If I disable this option, the problem seems to go away. I can run 15 wfuzz for several minutes and still be able to telnet localhost on port 80 without any problems.
IIS is configured to use an unlimited number of connections.
So, why would IIS stop responding after a minute when Enable HTTP Keep-Alives is enabled?
At first I thought the problem was that the number of sockets in the TIME_WAIT state was too high, but I don't see why de-selecting Enable HTTP Keep-Alives would solve the problem if this was the cause. If my client disconnects between every request, I don't see that this setting would have any effect on IIS behavior.