Web Debug

Fix broken web applications, from servers to clients.

Troubleshoot IIS 400 errors

The Http.sys file blocks IIS from processing the request because of a problem in the request. Typically, this HTTP status code means that the request contains characters or sequences that are not valid or that the request contradicts the security settings in the Http.sys file.

How to troubleshoot HTTP 400 errors
By Mike Laing

When troubleshooting HTTP 400 conditions, first remember that the client has sent a request to IIS that breaks one or more rules that HTTP.sys is enforcing. Then, gather a network trace of the request/response, to see the raw data the client is sending to the server, and the error data the server sends back to the client. Next, get the httperr.log data for the failed request. Finally, use the error message in the browser, the network trace data, and the httperr.log data to pinpoint the failure reason as per KB820729. It is possible that HTTP.sys can be configured to allow the request (although doing so may lower the security level of your IIS server), so check KB820129 to verify.

Http.sys registry settings for IIS

Http.sys is the kernel mode driver that handles HTTP requests. Several registry values can be configured according to specific requirements. The table in the "More Information" section contains the following information about these registry values:

  • Registry key names
  • Default values
  • Valid value ranges
  • Registry key functions
  • WARNING codes (where appropriate)

Fork me on GitHub