我知道ASP.NET MVC有错误过滤器属性来处理指定的错误类型.但是,此功能无法捕获应用程序启动时发生的任何错误.因此,我需要添加一些代码到“Application_Error”方法来处理这个错误,如下面的代码.
public void Application_Error(object sender,EventArgs e) { // At this point we have information about the error var ctx = HttpContext.Current; var exception = ctx.Server.GetLastError(); var errorInfo = "<br>Offending URL: " + ctx.Request.Url + "<br>Source: " + exception.Source + "<br>Message: " + exception.Message + "<br>Stack trace: " + exception.StackTrace; ctx.Response.Write(errorInfo); Server.ClearError(); }
虽然,这个代码会正常工作,正常的应用程序错误发生在视图页面中发生的错误.然而,当应用程序启动时发生错误,因为请求和响应对象始终为空,所以不起作用.
接下来,我尝试通过在自定义错误中设置默认重定向来解决这个问题,如下面的代码.
<customErrors mode="On" defaultRedirect="Scripts/ApplicationError.htm"></customErrors>
不幸的是,它不起作用,因为当应用程序接收重定向请求时,它尝试重新启动应用程序,并再次抛出异常.
谢谢,