Reputation: 9013
My company has two test servers modelled after customer configurations,
Both IIS are configured to use Windows Authentication and have an ISAPI filter for Tomcat.
With the IIS 6 machine, the server closes every authenticated http connection by sending the header "Connection: close". With the IIS 7 machine, the server uses persistent connections, and sends the header "Persistent-Auth: true". The customer with IIS 6 has the same connection-closing behaviour as our test server, which triples the number of network roundtrips due to NTLM authentication.
Why is the IIS 6 server closing connections, and how can I make it use persistent connections?
I have RDP admin access to both servers, and will happily provide any useful information and make experiments.
UPDATE:
I found that the problem is partially caused by an outdated version of the ISAPI filter (isapi_redirect.dll). After updating that filter to 1.2.32, I no longer get the "Connection: close" header for html pages. However, I still get it when the client applet accesses a service which returns serialized Java objects.
Upvotes: 0
Views: 1985
Reputation: 9013
I found that the problem had nothing to do with authentication. The Tomcat servlet uses chunked transfer encoding for its response, and the ISAPI filter was not configured to handled it, which seems to force IIS 6 to close the connection. IIS 7 seems to collect the response chunks, and sends the whole response, un-chunked, to the caller.
After upgrading to version 1.2.32 and enabling chunked encoding using the enable_chunked_encoding
property of the ISAPI filter, as described in the reference guide, connections are no longer closed.
Upvotes: 1