HOWTO: Maximize the Number of Concurrent Connections to IIS6

Question: I’m considering building a realtime ASP.NET application on IIS6, that’ll need to support about 3,000 simultaneous users on a server, each with a keep-alive HTTP connection for “server push.” The HTTP connection will need to stay open for the duration of the user’s session, to allow updates to be pushed to the browser in…


IIS6 and HTTP Server API, Part 1

Question: Hi, I’ve found these articles:;en-us;q311852;en-us;q327611 First of all I’ve got a question. READ_RAW_DATA can be used to modify the request body not only the headers. Why is it gone? If you don’t want to modify its behavior you should add a new notification type (input and output as well) only for modifying the entity…


HTTP.SYS, IIS, and the 100 continue

Question: Hi David, “My Company” is a leading middleware provider for mobile multiplayer games. Cutsomer like Disney, THQ etc. The backend is built on .NET. We went live in the US with W2K3/IIS6 which is great. But we have a major IIS6 issue. The handsets connect through HTTP/POST and sometimes the Server answers with “100 continue”…


Does IIS6 truncate HTTP headers at a hard-coded limit?

Question: Using IIS the HTTP_ACCEPT header server variable received from the client appears to have a hard coded limit of 259 characters. This is causing problems when using a Windows Mobile 5 Smartphone which has a longer string than 259 characters which is getting truncated. The phone then receives a 406 error saying that e.g….


HOWTO: Measure Effectiveness of the HTTP.SYS Kernel Mode Response Cache with IIS 6

Hmm… ever since I wrote the referenced blog entry about HTTP.SYS Kernel Response cache and IIS 6.0, I have gotten questions about one thing that I forgot to mention – how to determine the effectiveness of the Kernel Response Cache. Here goes… Question: David, To begin, I happened to come across your blogs on msdn…


HTTP.SYS rejection of request lines not terminated by CRLF (Redux)

Ok… this is the second day in a row now where I am answering a blog comment where I think the answer already exists in one or more of my blog entries. I am now wondering how to avoid having to make redux posts because I am sure there will be a third, a fourth,…


Kernel Caching in IIS 6 (Redux)

Hmm, I got the following question today, and since I had a blog entry that exactly answered the question already, it made me wonder about the visibility of my blog entries to searching… Question: Hi David, I am sure you have a ton of requests for content on your blog but you never seem to…


HOWTO: Diagnose IIS6 failing to accept connections due to Connections_Refused

Recently, I have seen a bunch of questions asking: “IIS6 runs fine for X amount of time [where X varies from days to weeks] and then all of a sudden, it stops accepting all connections. If I restart/reboot the server, then it is fine again… until X amount of time later, when I have to…


Controlling network packet size from IIS/ASP.Net?

I got this question about response packet size control… Question: Running a web app – native .NET. 2003 for server. Reports come out as garhugic (66K) packets in testing. Is there a way to control max packet size from within .NET at the program level or within the IIS settings? Answer: Actually, IIS6 does not buffer…


HOWTO: Use the HTTP.SYS Kernel Mode Response Cache with IIS 6

Motivation One of the bigger buzz-word features of IIS 6.0 on Windows Server 2003 is the “HTTP.SYS Kernel Mode Response Cache”. When you do a search against “HTTP.SYS Kernel Response Cache IIS 6”, you will inevitably find a large body of literature  repeatedly talking about how the kernel mode response cache effectively improves performance and…