System.Web.HttpException File does not exist - Page loads just fine (ASP.NET)

Dennis Röttger picture Dennis Röttger · Mar 1, 2012 · Viewed 14.6k times · Source

I'm using Log4Net and logging everytime my ASP.NET-Application throws an error:

    protected void Application_Error(object sender, EventArgs e)
    {
        Exception ex = Server.GetLastError();
        Log.Error("An error occurred", ex);
    }

Alas, everytime I visit a page on my application, a System.Web.HttpException is caught, "File does not exist".

Here's the Stack Trace:

bei System.Web.StaticFileHandler.GetFileInfo(String virtualPathWithPathInfo, String physicalPath, HttpResponse response)
bei System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext context, String overrideVirtualPath)
bei System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state)
bei System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
bei System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

I don't have any clue how to debug this, this happens on my ASP.NET Development Server and on an IIS 7.5 I deploy it on.

Answer

Darin Dimitrov picture Darin Dimitrov · Mar 1, 2012

I bet it's the favicon.ico that Google Chrome always requests and which you forgot to include. But to be sure you could trace the request url:

protected void Application_Error(object sender, EventArgs e)
{
    Exception ex = Server.GetLastError();
    Log.Error("An error occurred", ex);
    Log.Error("Requested url: ", Request.RawUrl);
}

Now in your log file you should see:

Requested url: /favicon.ico

or something else like robots.txt when for example web crawlers attempted to crawl your site.