【问题标题】:Application_error function intermittently catch "File does not exist"Application_error 函数间歇性地捕获“文件不存在”
【发布时间】:2011-03-15 16:11:43
【问题描述】:
我正在使用Application_Error 事件来处理异常,它几乎可以正确捕获所有异常。但是在某些页面中,它捕获异常“文件不存在”,我无法找到它确切发生的位置。当我评论Application_Error 代码时,令人惊讶的是网页运行良好。
我主要关心的是如何追溯从它抛出到Application_Error函数的代码行。
【问题讨论】:
标签:
asp.net
exception-handling
global-asax
【解决方案1】:
要查看问题,请在 Global.asax 的 Application_Error 事件上放置:
public void Application_Error(object sender, EventArgs e) {
// Code that runs when an unhandled error occurs
Exception ex = Server.GetLastError();
Console.WriteLine("Application_Error() -> " + ex.Message + "\n\nURL: " + HttpContext.Current.Request.Url, ex);
if (ex is HttpUnhandledException)
Context.ClearError(); // System.NullReferenceException
}
【解决方案2】:
使用HttpContext.Current.Request.Url.ToString()查看丢失文件的文件路径。
【解决方案3】:
就我而言,在 Jquery 中也有很多地方使用了不存在的背景图像 uri,这就是为什么会出现这种类型的错误。
【解决方案4】:
hoooo.......刚刚解决了我的问题。在调试期间,我在 Appilcation_Error 代码中放置了一个检查点,当执行到它时,我可以看到当时正在加载并导致异常的图像的路径(路径错误)。 :)