阅读背景:

MVC中全局错误拦截记录日志,WebApi中全局错误拦截以及授权验证401,jquery cors 跨域_深南大道

来源:互联网 
using Magic.Tool;
using System;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

//MVC中全局错误拦截
namespace Magic.Mvc
{
    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            RouteConfig.RegisterRoutes(RouteTable.Routes);
        }

        /// <summary>
        /// 全局错误处理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Application_Error(object sender, EventArgs e)
        {
            var error = "";
            try
            {
                Exception exception = Server.GetLastError();
                error = exception != null ? exception.Message : "";
                Response.Clear();
                HttpException httpException = exception as HttpException;
                RouteData routeData = new RouteData();
                routeData.Values.Add("controller", "Error");

                if (httpException != null)
                {
                    switch (httpException.GetHttpCode())
                    {
                        case 404:
                            // Page not found.  
                            routeData.Values.Add("action", "HttpError404");
                            break;
                        case 500:
                            // Server error.  
                            routeData.Values.Add("action", "HttpError500");
                            break;
                        // Here you can handle Views to other error codes.  
                        // I choose a General error template    
                        default:
                            routeData.Values.Add("action", "General");
                            break;
                    }
                }
                // Pass exception details to the target error View.  
                routeData.Values.Add("error", exception.Message);
                // Clear the error on server.  
                Server.ClearError();
                // Call target Controller and pass the routeData.  
                IController errorController = new Controllers.ErrorController();
                errorController.Execute(new RequestContext(new HttpContextWrapper(Context), routeData));
            }
            catch (Exception ex)
            {
                LogHelper.Log(ex.Message);
            }
            finally
            {
                LogHelper.Log("全局捕获错误 " + error);
            }

        }
    }
}
using Magic.Tool;
using System;
using System.We



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: