Getting to see the real IIS status codes from Internet Explorer

[Today's post comes to us courtesy of Damian Leibaschoff]

This is something we see every day so we wanted to share this small tidbit of advice.

When troubleshooting IIS related issues, it is important to get to the real error or status code as returned by IIS, unfortunately, the default settings in Internet Explorer may not allow that.

For example, what is the difference between these two errors?:

ie1

ie2

Or these two:

ie3

ie4

Not much, each pair represents the same error as seen from IE. The only difference is just one advanced setting in IE:

Go to Tools, Internet Options, Advanced tab and uncheck the "Show friendly HTTP error messages"

ie-friendly

Seeing the proper error will help you isolate and resolve the issue much faster.

Of course there are other ways to find what the real error (or at least the error code) that IIS has returned.

The best place is the W3SVC logs.

By default, logs for web sites go into %windir%\system32\logfiles\w3svc#, where # is the instance ID of the web site (default web site is 1, so it will be W3SVC1). Also, by default, the format of the logs is W3C Extended Log File Format.

For our examples, the IIS log shows:

2007-08-01 16:14:13 W3SVC1 192.168.0.2 GET /Remote/ - 443 - 65.53.66.143 Mozilla/4.0+(compatible;+MSIE+7.0;) 403 14 5 412 369

The error code is 403.14, the Directory Listing Denied error we saw before.

2007-08-01 17:55:24 W3SVC1 192.168.0.2 GET /exchweb/bin/auth/owalogon.asp url= https://65.53.67.67/Exchange&reason=

0|4|ASP_0177_:_800401f3| Server.CreateObject_Failed 443

- 65.53.66.143 Mozilla/4.0+(compatible;+MSIE+7.0;) 500 0 0 563 488

On this case, we are interested in the ASP failure, the error is telling us the exact line where we are having the issue.

For a description of the IIS status codes, you can check: 

318380    IIS Status Codes
https://support.microsoft.com/default.aspx?scid=kb;EN-US;318380

(If you are interested, on the first case Default.aspx was missing, on the second one I tweaked with owalogon.asp to break it)