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



The information in this article applies to:

  • Microsoft Internet Information Services
  • Microsoft Internet Information Services version 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 "fKeepCon is not TRUE" and sends a "Connection: Close" 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 "Connection: Close" 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.

REFERENCES

For more information about the ServerSupportFunction HSE_REQ_SEND_RESPONSE_HEADER_EX, visit the following Microsoft Web site:

Modification Type:MajorLast Reviewed:10/2/2003
Keywords:kbpending kbprb KB332143 kbAudDeveloper