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.
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.
I have same error:
There were some file references in CSS. That does not exist in directory. So it gave this error. I created Image Files, so error disappeared.
So make sure that file reference that you have given is exists in your directory
Check your HTML output of your page in case of using url with tilda "~/"
You need to use @Url.Content() to fix it
http://clubmicrosoft.net/post/2014/02/28/File-does-not-exist.aspx
来源:https://stackoverflow.com/questions/9517801/system-web-httpexception-file-does-not-exist-page-loads-just-fine-asp-net