« Publication of Photographs: Is A Release Required? | Main | Blogging from the Mississippi Gulf Coast »

August 31, 2005

There are too many people accessing the Web site at this time

IIS is driving me nuts, because I can't figure out why it keeps limiting my connections. Out of desperation, I have installed MetaEdit 2.2. I'm really struggling with the maximum number of connections allowed by IIS.

IIS on XP is configured by default with Maxconnections set to 10. You can bump it up to 40. MetaEdit will allow you to set it higher, but if you set it to more than 40, then the max connections defaults back down to 10.

The funny thing about the maximum number of connections to IIS is is that, when you think about it, it's really just blasting data through the router in response to an HTTP request, so what really is a "connection" anyway?

Well, as it turns out, with HTTP 1.0, this was initially the plan. That data would be regurgitated through the ubiquitous Port 80 on request. However, it soon became apparent that this was a less than optimal solution. With HTTP 1.1, the Keep-Alive property was introduced. So, between connections, IIS tries to keep the connection alive. Keep-Alive should always be enabled in IIS to improve performance.

Start - Run - Inetmgr. In IIS, find your web site and click on the Properties icon. Under "My Web Site Properties" - "Web Site" tab - Connections, verify that "HTTP Keep-Alives Enabled" is checked. I also set "Connection Timeout" to 300 seconds. I assume that this is the amount of time before the connection is dropped, if you're using "Keep-Alives". Mine was set to 900 seconds, which seemed too long.

I've always suspected that IIS wasn't dropping the connections promptly, and this is probably what was causing it.

Update: I believe that Microsoft has patched IIS 5.1 for XP so that it restricts connections to 10, even though Maxconnections is set to 39. I haven't seen this posted anywhere, but that's what I think has happened. To get around it for now, I turned off "Keep-Alives", and set connection timeout to 10 seconds, which essentially drops a connection as soon as it is established. I'm not sure what this means from a "performance" perspective, but performance wasn't my problem. My problem is that IIS won't allow people to connect to my web site, which sucks.

Update 2: I finally installed Apache under XP and put a bullet in IIS. IIS sucks and should never be used under any circumstances. It's a joke. Apache is simple to use, and a much better web server than IIS.

Posted by Peenie Wallie on August 31, 2005 at 11:39 AM