Hi Jason,
This is expected behavior. In IIS5, it will always be sent for PUT/POST requests... you can't turn it off. in IIS6, we will only send the 100 Continue if http.sys has not received any entity body in the same packet as the headers.
Your client should figure out how to deal with it or it should send HTTP/1.0 requests instead where we don't send the 100 Continue.
Below is some more detailed explanation on this:
IIS will always send a 100-Continue response for a POST request coming from an Http
1.1 client, there is no way to turn that off through some configuration.
So, in order to make IIS not send the 100-Continue:
1. You could send an HTTP 1.0 request as a client side workaround.
I found that with ServerXMLHttp you can do this if you use the ServerXMLHttp
component in MSXML3.0, and not the one in MSXML4.0.
In order to do that you will have to use the version dependent progID -
'MSXML2.ServerXMLHTTP.3.0'
Here is a trace when using the "MSXML2.ServerXMLHTTP.3.0" object:
HTTP: Request Method = GET
HTTP: Uniform Resource Identifier = /postinfo.html
HTTP: Protocol Version = HTTP/1.0
HTTP: Accept-Language = en-us
HTTP: Content-Length = 0
HTTP: Accept = */*
HTTP: User-Agent = Mozilla/4.0 (compatible; Win32; WinHttp.WinHttpRequest.5)
HTTP: Host = aatest
HTTP: Connection = Keep-Alive
2. You can send a GET request if possible, instead of a PUT/POST. There is no 100
Continue response sent back for a GET request.
3. You can write an ISAPI filter that 'eats' the 100-Continue response.
A similar thread:
http://forums.iis.net/t/1061594.aspx