c# – global.asax如果自定义错误打开,Application_Error事件不
发布时间:2020-12-15 04:33:39 所属栏目:百科 来源:网络整理
导读:如果您在Web配置中将自定义错误设置为RemoteOnly – 这是否意味着global.asax中的MVC应用程序级错误事件 – Application_Error不会在错误时触发? 我刚刚注意到,当我的应用程序发生某个错误,并且我正在远程查看站点时,不会记录错误.但是,当我访问服务器上的
如果您在Web配置中将自定义错误设置为RemoteOnly – 这是否意味着global.asax中的MVC应用程序级错误事件 – Application_Error不会在错误时触发?
我刚刚注意到,当我的应用程序发生某个错误,并且我正在远程查看站点时,不会记录错误.但是,当我访问服务器上的应用程序并发生相同的错误时,会记录错误. 这是自定义错误配置设置: <customErrors defaultRedirect="/Error/Application" mode="RemoteOnly"> <error statusCode="403" redirect="/error/forbidden"/> <error statusCode="404" redirect="/error/notfound"/> <error statusCode="500" redirect="/error/application"/> </customErrors> 编辑 只是出于对人的兴趣 – 我最终完全关闭自定义错误,并处理Application_Error中的重定向,如下所示: protected void Application_Error(object sender,EventArgs e) { Exception exception = Server.GetLastError(); // ... log error here var httpEx = exception as HttpException; if (httpEx != null && httpEx.GetHttpCode() == 403) { Response.Redirect("/youraccount/error/forbidden",true); } else if (httpEx != null && httpEx.GetHttpCode() == 404) { Response.Redirect("/youraccount/error/notfound",true); } else { Response.Redirect("/youraccount/error/application",true); } } 解决方法
如果您不调用Server.ClearError或者在Page_Error或Application_Error事件处理程序中捕获错误,则会根据Web.config文件部分中的设置来处理错误.
有关更多信息,请参阅this SO question (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |