This morning I was setting up a new ASP.NET 2.0 site in my production IIS 6.0 web server. I thought I had set the web site to use its own Application Pool and set the ASP.NET version to 2.0. On top of that I thought I had set the Execute Permissions to Scripts and Executables for the site. I hit submit (I thought) after doing all this work, but evidently none of these were applied to the site.
I was at a loss when nothing came up for the site. I checked the IIS Log and found this entry for each request:
2006-03-15 14:37:47 ###.###.###.### GET /Default.aspx - 80 - 184.108.40.206 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.2;+SV1;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727) 403 1 0
I was looking for the status code, relieved to see there was an entry logged (that meant at least the domain was resolving and the web site responding). The status code was 403.1. I don't know about you, but I do not have all the Web Status codes memorized so I did a little search for 403 and IIS and found this pretty good reference page on the Microsoft site, http://support.microsoft.com/?id=318380.
I really liked this page because it has a pretty good explanation as to what the code means and why a code is in your IIS Web Site log file. It also seems to have a decent explanation of how to correct errors that you have logged.
403.1 means you do not have execute permissions set (remember I thought I set that). So I checked and sure enough it was set to none. Not what I expected. So I fixed it, then through a series of more errors discovered none of these settings were in place and had to reset them all. After all this effort, the site is live. Once the site is approved for production I will post an entry about it for you. I have a few site updates and announcements I need to post, so be on the look out for them in the next few days.
If you want more infromation about web status codes visit http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10. For FTP Status Codes, visit http://www.w3.org/Protocols/rfc959/4_FileTransfer.html.