public override void OnException(ExceptionContext filterContext)
    {
        if (filterContext.ExceptionHandled)
        {
            return;
        }
        if (new HttpException(null, filterContext.Exception).GetHttpCode() != 500)
        {
            return;
        }
        if (!ExceptionType.IsInstanceOfType(filterContext.Exception))
        {
            return;
        }

        string          controllerName = filterContext.GetController();
        string          actionName     = filterContext.GetAction();
        HandleErrorInfo model          = new HandleErrorInfo(filterContext.Exception, controllerName, actionName);

        filterContext.Result = new ViewResult
        {
            ViewName   = View,
            MasterName = Master,
            ViewData   = new ViewDataDictionary <HandleErrorInfo>(model)
        };

        //使用log4net写入本地日志
        _logger.Error(filterContext.Exception.Message, filterContext.Exception);

        filterContext.HttpContext.Response.Clear();
        filterContext.HttpContext.Response.StatusCode             = 500;
        filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
        filterContext.ExceptionHandled = true;
    }
Пример #2
0
    public void OnException(ExceptionContext filterContext)
    {
        StringBuilder strBuilder = new StringBuilder("异常信息:\r\n");

        string controllerName = filterContext.GetController();
        string actionName     = filterContext.GetAction();

        strBuilder.AppendFormat("\tController:{0}\r\n", controllerName);
        strBuilder.AppendFormat("\tAction:{0}\r\n", actionName);
        strBuilder.AppendFormat("\tExceptionInfo:{0}\r\n", filterContext.Exception);

        //ToTest
        //MailHelper mail = new MailHelper("smtp.gmail.com", "*****@*****.**", "gzlpsmyx");
        //mail.Send("System", "*****@*****.**", "资产系统出现错误!", strBuilder.ToString());
    }
Пример #3
0
    public override void OnException(ExceptionContext filterContext)
    {
        T_Log log = new T_Log();

        //ToTest
        log.UserId   = 1;
        log.UserName = "******";

        //log.UserId = Convert.ToInt32(filterContext.HttpContext.Session["UserId"]);
        //log.UserName = filterContext.HttpContext.Session["UserName"].ToString();
        log.IpAddress  = NetHelper.GetPrivateIPAddress();
        log.Controller = filterContext.GetController();
        log.Action     = filterContext.GetAction();
        log.Remark     = filterContext.Exception.Message;
        log.CreateDate = DateTime.Now;

        //ToTest
        //using (DBEntity db = new DBEntity())
        //{
        //    db.Log.AddObject(log);
        //    db.SaveChanges();
        //}
    }