tags:

views:

38

answers:

1

I've got a basic ASP.NET MVC2 site which logs a single "File does not exist" error every time a view (not partial views) is loaded. I am pretty sure this is because I'm referencing a file, from the master page, that doesn't exist - but I can't figure out which one it is (it's getting late here!).

The stack trace is not at all useful (see below). Has anyone got any tips on how to best debug this?

Many thanks, Øyvind

File does not exist. :    at System.Web.StaticFileHandler.GetFileInfo(String virtualPathWithPathInfo, String physicalPath, HttpResponse response)
   at System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext context)
   at System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
A: 

As you say, its probably a missing file or image referenced by your master page. To capture the error, add the following error handler to your Global.asax

        protected void Application_Error(object sender, EventArgs e)
        {
            Exception ex = Server.GetLastError();

            if (ex.Message == "File does not exist.")
            {
                throw new Exception(string.Format("{0} {1}", ex.Message, HttpContext.Current.Request.Url.ToString()), ex);
            }
        }

This should then tell you what resource the page is requesting

Clicktricity
Thanks Clicktricity! That's brilliantly simple. Makes me feel dumb for not thinking of it :-) Anyway, turns out that it's a request for favicon.ico that fails.
Øyvind