Microsoft KB Archive/332143

= IIS 6.0: ISAPI Extensions That Do Not Set fKeepConn to False May Cause IIS to Stop Responding =

Article ID: 332143

Article Last Modified on 12/3/2007

-

APPLIES TO


 * Microsoft Internet Information Server 1.01
 * Microsoft Internet Information Services 6.0

-



This article was previously published under Q332143





SUMMARY
The ServerSupportFunction HSE_REQ_SEND_RESPONSE_HEADER_EX Internet Server API (ISAPI) extension takes the HSE_SEND_HEADER_EX_INFO structure. HSE_SEND_HEADER_EX_INFO has a member called fKeepConn. fKeepConn is a Boolean value (0 or 1).

If fKeepConn is not initialized, it is a random value that is likely to be non-zero. Microsoft Internet Information Services (IIS) 6.0 interprets a non-zero value as TRUE. Because of this, an ISAPI extension may unintentionally enable keep-alive functionality and cause IIS 6.0 to stop responding.



MORE INFORMATION
If you do not explicitly set fKeepConn to 0 or 1 in IIS 5.0, IIS 5.0 typically interprets it as &quot;fKeepCon is not TRUE&quot; and sends a &quot;Connection: Close&quot; statement to close the connection.

IIS 6.0 keeps the connection alive if the client and the ISAPI extension on the server permit it. If you set fkeepcon to FALSE (or 0), IIS closes the connection. However, any non-zero value is interpreted by the ISAPI as TRUE and keep-alive functionality is permitted if the client permits it. In this situation, IIS does not send a &quot;Connection: Close&quot; statement to close the connection.

Because the ISAPI extensions do not prevent keep-alive functionality, you may expect IIS 6.0 to close the connection because IIS 5.0 behaved this way. However, IIS 6.0 honors the keep-alive behavior and may cause the server to stop responding.

