Why Do I Get Unexpected 404 Errors in Visual Web Developer 2005 Express Edition?

Today I was experiencing unexpected 404 "The resource cannot be found" errors when working with Visual Web Developer 2005 Express Edition beta 2 in combination with the ASP.NET Development Server. No matter what I tried, and what file I tried to open, I kept getting the same error.

I was just about to get very angry, after trying to change about every property on my project, web server and firewall when I noticed an additional file in the root of my site called app_offline.htm. It turned out this file was the culprit. I have no idea how the file got there, but I think it has been put there by Visual Web Developer somehow

There is hardly any documentation about this file. In fact, the only reference Google found was in the ASP.NET 2 Quickstart Tutorials. From a bit of experimenting, I found out that when this file is located in the root of your site and is completely empty, all files in your site (including images and other resources) return a 404 error. This can be useful if you temporarily need to block access to all of your pages.

To customize the error message your users get, you can simply add some markup to this app_offline.htm. Whenever this file contains any content, that content will be shown instead of the nasty 404 error message.

Note that this is different from the option "Take application offline" that you find in the ASP.NET Web Site Administration Tool. Whenever you use that option to take your application offline, the following key is added to the <system.web> node in your web.config file:

<httpRuntime enable="false" />

For more information about the app_offline.htm file, check out this blog post by Scott Guthrie.

Where to Next?

Wonder where to go next? You can read existing comments below or you can post a comment yourself on this article .

Consider making a donation
Please consider making a donation using PayPal. Your donation helps me to pay the bills so I can keep running Imar.Spaanjaars.Com, providing fresh content as often as possible.

Feedback by Other Visitors of Imar.Spaanjaars.Com

On Monday, May 23, 2005 6:13:28 PM Chris Ullman said:
Hi Imar - I have an answer for you (it used to the be the other way round in the Wrox days) - from MS - "during copy web, this file is temporally copied up and removed when completed. A crash during this operation can leave the file behind. Unfortunately, this is a zero length file in beta2, providing no information to the user." - Apparently you can change the contents of this file yourself, and it will no longer yield a 404 error - like a custom error page I assume.
On Monday, May 23, 2005 6:20:37 PM Imar Spaanjaars said:
Hi Chris,

Long time no speak. Hope you're well.

Thanks for sharing this. This confirms my observations. I indeed saw a zero length file in the root of the site. You get a true error when the file is zero bytes, or indeed you get the contents of the file when it contains any Html.

I'm glad I know now where the file comes from. Thanks!

On Friday, December 16, 2005 10:23:03 AM salman said:

I am new to ASP.NET development i have developed a site in ASP.NET 2.0 using Web Developer express 2005. every thing is ok on the my development PC but when i deployed it on the server running Windows 2003 server. I have started to get the HTTP 404 Error.

I have checked to see if there is the app_offline.htm file there but there is no such file there. i wonder whats the problem. can you please help me on this.

On Saturday, December 17, 2005 2:51:24 PM Imar Spaanjaars said:
Hi salman,

Take a look at this FAQ: http://imar.spaanjaars.com/QuickDocId.aspx?QUICKDOC=254

It explains how to enable ASP.NET 2 on Server 2003...



Talk Back! Comment on Imar.Spaanjaars.Com

I am interested in what you have to say about this article. Feel free to post any comments, remarks or questions you may have about this article. The Talk Back feature is not meant for technical questions that are not directly related to this article. So, a post like "Hey, can you tell me how I can upload files to a MySQL database in PHP?" is likely to be removed. Also spam and unrealistic job offers will be deleted immediately.

When you post a comment, you have to provide your name and the comment. Your e-mail address is optional and you only need to provide it if you want me to contact you. It will not be displayed along with your comment. I got sick and tired of the comment spam I was receiving, so I have protected this page with a simple calculation exercise. This means that if you want to leave a comment, you'll need to complete the calculation before you hit the Post Comment button.

If you want to object to a comment made by another visitor, be sure to contact me and I'll look into it ASAP. Don't forget to mention the page link, or the QuickDocId of the document.

For more information about the Talk Back feature, check out this news item.