我试图在我的MVC应用程序中实现全局错误处理。
我内心有一些逻辑 Application_Error
重定向到 ErrorController
但它不起作用。
我的内心有一个突破点 Application_Error
方法中的 Global.aspx
。
当我强制异常时,断点没有被击中。有什么想法吗?
我试图在我的MVC应用程序中实现全局错误处理。
我内心有一些逻辑 Application_Error
重定向到 ErrorController
但它不起作用。
我的内心有一个突破点 Application_Error
方法中的 Global.aspx
。
当我强制异常时,断点没有被击中。有什么想法吗?
您可以尝试这种方法进行测试:
protected void Application_Error(object sender, EventArgs e)
{
var error = Server.GetLastError();
Server.ClearError();
Response.ContentType = "text/plain";
Response.Write(error ?? (object) "unknown");
Response.End();
}
Web.config文件
<customErrors mode="Off" />
我认为更好的办法是使用 HandleErrorAttribute 装饰你的控制器(也许是一个基本控制器)。通过扩展此属性并修改它以满足您的需要,例如通过更改渲染的视图,这将使您可以选择在具有不同错误的不同控制器中执行日志记录或处理错误。使用此属性使用MVC中的标准过滤器处理,并使用视图构建页面,而不是像使用Application_Error那样直接写入响应。
我不能肯定地告诉你什么是错的,但是我可以想一些事情要检查......首先,VS是否打破了例外?如果您在调试器中,这是我认为的默认值。如果它只是点击F5,直到你得到断点的代码。此外,您确定在它到达之前的任何地方都没有处理异常 Application_Error
?
要检查的另一件事 - CustomErrors
web.config中的模式,设置为 Off
, 对?