每次ASP.NET应用程序抛出错误时,我都会使用Log4Net并进行日志记录:
protected void Application_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
Log.Error("An error occurred", ex);
}
遗憾的是,每次我访问应用程序上的页面时,都会捕捉到一个System.Web.HttpException
,"文件不存在"。
这是堆栈跟踪:
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)
我不知道如何调试它,这发生在我的ASP.NET开发服务器上,并且在我部署它的IIS 7.5上。
我敢打赌,这是Google Chrome总是请求的favicon.ico
,而您忘记了包含它。但为了确保您可以跟踪请求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);
}
现在,在您的日志文件中,您应该看到:
Requested url: /favicon.ico
或者其他类似robots.txt
的东西,例如网络爬虫试图对您的网站进行爬网。
我有同样的错误:
CSS中有一些文件引用。目录中不存在。所以它给出了这个错误。我创建了图像文件,所以错误消失了。
因此,请确保您提供的文件引用存在于您的目录
如果使用带有tilda"~/"的url,请检查页面的HTML输出
你需要使用@Url.Content()来修复它
http://clubmicrosoft.net/post/2014/02/28/File-does-not-exist.aspx