Today we’ll discuss about Troubleshooting HTTP
- These steps are true for any HTTP application.
- IIS Logs and Status Codes are you friends. The following KB article points to common causes for most of the codes, so turn up protocol logging in IIS: HTTP status codes in IIS 7.0
- For HTTP status code definitions, visit the World Wide Web Consortium (W3C) Web site:
- High level Codes
- 1XX – Informational
- 2XX – Success
- 3XX – Redirection
- 4XX – Client Error
- 5XX – Server Error
Step 4 : Mainly you will have to focus on the 4XX and 5XX codes.
Step 5 : 4XX Codes have Sub codes to further describe the issue, as follows:
- 400 – Bad Request
- 400.1 – Invalid Destination Header.
- 400.2 – Invalid Depth Header.
- 400.3 – Invalid If Header.
- 400.4 – Invalid Overwrite Header.
- 400.5 – Invalid Translate Header.
- 400.6 – Invalid Request Body.
- 400.7 – Invalid Content Length.
- 400.8 – Invalid Timeout.
- 400.9 – Invalid Lock Token.
- 401 – Access Denied (logon issues)
- 401.1 – Logon failed.
- 401.2 – Logon failed due to server configuration.
- 401.3 – Unauthorized due to ACL on resource.
- 401.4 – Authorization failed by filter.
- 401.5 – Authorization failed by ISAPI/CGI application.
- 403 – Forbidden (Access Restrictions)
- 403.1 – Execute access forbidden.
- 403.2 – Read access forbidden.
- 403.3 – Write access forbidden.
- 403.4 – SSL required.
- 403.5 – SSL 128 required.
- 403.6 – IP address rejected.
- 403.7 – Client certificate required.
- 403.8 – Site access denied.
- 403.9 – Forbidden: Too many clients are trying to connect to the Web server.
- 403.10 – Forbidden: Web server is configured to deny Execute access.
- 403.11 – Forbidden: Password has been changed.
- 403.12 – Mapper denied access.
- 403.13 – Client certificate revoked.
- 403.14 – Directory listing denied.
- 403.15 – Forbidden: Client access licenses have exceeded limits on the Web server.
- 403.16 – Client certificate is untrusted or invalid.
- 403.17 – Client certificate has expired or is not yet valid.
- 403.18 – Cannot execute requested URL in the current application pool.
- 403.19 – Cannot execute CGI applications for the client in this application pool.
- 403.20 – Forbidden: Passport logon failed.
- 403.21 – Forbidden: Source access denied.
- 403.22 – Forbidden: Infinite depth is denied.
- 404 – Not Found
- 404.0 – Not found.
- 404.1 – Site Not Found.
- 404.2 – ISAPI or CGI restriction.
- 404.3 – MIME type restriction.
- 404.4 – No handler configured.
- 404.5 – Denied by request filtering configuration.
- 404.6 – Verb denied.
- 404.7 – File extension denied.
- 404.8 – Hidden namespace.
- 404.9 – File attribute hidden.
- 404.10 – Request header too long.
- 404.11 – Request contains double escape sequence.
- 404.12 – Request contains high-bit characters.
- 404.13 – Content length too large.
- 404.14 – Request URL too long.
- 404.15 – Query string too long.
- 404.16 – DAV request sent to the static file handler.
- 404.17 – Dynamic content mapped to the static file handler via a wildcard MIME mapping.
- 404.18 – Querystring sequence denied.
- 404.19 – Denied by filtering rule.
- 405 – Method Not allowed
- 406 – Client browser does not accept Mime Type Request page
- 408 – Request timed out
- 412 – Precondition Failed.
Step 6 : The Sub number will be in one of two formats
- 401.1 – Displayed in browser (note: for IIS 7+, the substatus code is only visible from the server console, by default. For security, remote clients are only given the basic 3-digit HTTP status code)
- 401 1 – Displayed IIS logs at end of string, as long as http substatus logging is enabled (it is by default)
Step 7 : 5XX Codes have Sub codes to further describe the issue, as follows:
- 500 – Internal Server error
- 500.0 – Module or ISAPI error occurred.
- 500.11 – Application is shutting down on the Web server.
- 500.12 – Application is busy restarting on the Web server.
- 500.13 – Web server is too busy.
- 500.15 – Direct requests for Global.asax are not allowed.
- 500.19 – Configuration data is invalid.
- 500.21 – Module not recognized.
- 500.22 – An ASP.NET httpModules configuration does not apply in Managed Pipeline mode.
- 500.23 – An ASP.NET httpHandlers configuration does not apply in Managed Pipeline mode.
- 500.24 – An ASP.NET impersonation configuration does not apply in Managed Pipeline mode.
- 500.50 – A rewrite error occurred during RQ_BEGIN_REQUEST notification handling. A configuration or inbound rule execution error occurred.
- Note Here is where the distributed rules configuration is read for both inbound and outbound rules.
- 500.51 – A rewrite error occurred during GL_PRE_BEGIN_REQUEST notification handling. A global configuration or global rule execution error occurred.
- Note Here is where the global rules configuration is read.
- 500.52 – A rewrite error occurred during RQ_SEND_RESPONSE notification handling. An outbound rule execution occurred.
- 500.53 – A rewrite error occurred during RQ_RELEASE_REQUEST_STATE notification handling. An outbound rule execution error occurred. The rule is configured to be executed before the output user cache gets updated.
- 500.100 – Internal ASP error
- 501 – Header values specify a configuration that is not implemented
- 502 – Web Server received an invalid response while acting as a gateway or proxy
- 502.1 – CGI application timeout.
- 502.2 – Bad gateway.
- 503 – Service unavailable
- 503.0 – Application pool unavailable.
- 503.2 – Concurrent request limit exceeded.
Step 8 :The Sub number will be in one of two formats
- 500.0 – Displayed in browser on server console only (see above)
- 500 0 – Displayed IIS logs at end of string, if http substatus logging is enabled (on by default)
Step 9 :So what logging can I turn up outside of IIS?
- Diags Logging in Exchange
- MSExchange AutoDiscover
- MSExchange Availability (EWS/OOF/AS), Calendar and Free / Busy
- MSExchange Control Panel (Option Page in OWA). Outlook 2010 will use the ECP for some features.
- MSExchange WebServices (RPC/HTTP, also EWS/OOF/AS)
- Test Command lets
- Test-OutlookWebServices (AutoDiscover)
- Test-CalendarConnectivity (AS)
- Only Anonymous and not very useful.
- Use URL in Apps events
- Test-ECPConnectivity
- Test-WebServicesConnectivity(RPC/HTTP access)
- Note: It does not test Calendar, OOF or ECP!
- Test-OutlookConnectivity (AutoDiscover, Profile Creation, MAPI or RPC/HTTP access)
Praveen Kumar
MCTS | Exchange Server