Example #1
0
        public void OnException(ExceptionContext context)
        {
            //Logger.Error(context.Exception.Message);

            if (!(context.ActionDescriptor is ControllerActionDescriptor))
            {
                return;
            }

            var myException = context.Exception as BaseException;

            if (myException == null)
            {
                context.Result = new ObjectResult(
                    new {
                    error   = context.GetType().Name,
                    message = context.Exception.Message,
                });
                context.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
            }
            else
            {
                context.Result = new ObjectResult(
                    new {
                    error   = myException.Name,
                    message = myException.Message
                });
                context.HttpContext.Response.StatusCode = myException.StatusCode;
            }


            context.Exception = null;
        }
Example #2
0
        /// <summary>
        /// 记录错误日志
        /// </summary>
        /// <param name="filterContext"></param>
        protected override void OnException(ExceptionContext filterContext)
        {
            ILog log = LogManager.GetLogger(filterContext.GetType());

            log.Error(filterContext.Exception);

            base.OnException(filterContext);
        }
        protected override void OnException(ExceptionContext filterContext)
        {
            //The "ErrorManager" in the above code is just a view that is using a
            //Model based on ExceptionContext

            filterContext.GetType();
            filterContext.ExceptionHandled = true;
            this.View("ErrorManager", filterContext).ExecuteResult(this.ControllerContext);
            base.OnException(filterContext);
        }
Example #4
0
 public void OnException(ExceptionContext filterContext)
 {
     Debug.WriteLine(filterContext.GetType().Name);
     Debug.WriteLine("EXCEPTION EXCEUTED");
     filterContext.ExceptionHandled = true;
     filterContext.Result           = new ViewResult
     {
         ViewName = "../Student/Department"
     };
 }
Example #5
0
        protected ErrorResponseViewModel CreateErrorResponseVM(ExceptionContext exceptionContext)
        {
            ErrorResponseViewModel errorVM = new ErrorResponseViewModel();

            errorVM.Message        = exceptionContext.Exception.Message;
            errorVM.Path           = exceptionContext.HttpContext.Request.Path;
            errorVM.StackTrace     = (exceptionContext.Exception.StackTrace)?.Substring(0, 500);
            errorVM.ExceptionName  = exceptionContext.GetType().ToString();
            errorVM.InnerException = exceptionContext.Exception.InnerException?.Message;
            return(errorVM);
        }
Example #6
0
 public void OnException(ExceptionContext context)
 {
     if (context.GetType() == typeof(InvalidTokenException))
     {
         context.HttpContext.Response.StatusCode = 401;
     }
     else
     {
         context.HttpContext.Response.StatusCode = 500;
     }
 }
        public override void OnException(ExceptionContext filterContext)
        {
            HttpRequestBase richiesta = filterContext.RequestContext.HttpContext.Request;

            if (typeof(System.Data.SqlClient.SqlException).IsAssignableFrom(filterContext.GetType()) ||
                typeof(System.Data.DataException).IsAssignableFrom(filterContext.GetType()))
            {
                // errore di connessione al database, scrivo il log sul file
                Elmah.ErrorSignal.FromCurrentContext().Raise(filterContext.Exception);
            }
            else
            {
                using (DatabaseContext db = new DatabaseContext())
                {
                    db.Database.Connection.Open();
                    LOG_ERRORE logErrore = new LOG_ERRORE();
                    logErrore.ACTION      = filterContext.RouteData.Values["action"].ToString();
                    logErrore.CONTROLLER  = filterContext.RouteData.Values["controller"].ToString();
                    logErrore.PARAMETRI   = System.Web.Helpers.Json.Encode(filterContext.HttpContext.Request.QueryString);
                    logErrore.IP          = richiesta.UserHostAddress;
                    logErrore.MAC_ADDRESS = "";
                    logErrore.SESSIONE    = filterContext.RequestContext.HttpContext.Session.SessionID;
                    logErrore.RICHIESTA   = richiesta.ToString();
                    logErrore.RISPOSTA    = filterContext.HttpContext.Response.ToString();
                    logErrore.ALIAS       = richiesta.UserHostName;
                    if (richiesta.IsAuthenticated)
                    {
                        AdvancedController controller = new AdvancedController();
                        PersonaModel       utente     = filterContext.RequestContext.HttpContext.Session["utente"] as PersonaModel;
                        int  bonus   = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["bonusMessaggioErrore"]);
                        Guid portale = Guid.Parse(System.Configuration.ConfigurationManager.AppSettings["portaleweb"]);
                        logErrore.ID_PERSONA = utente.Persona.ID;
                        controller.AddBonus(db, filterContext.Controller.ControllerContext, utente.Persona, portale, bonus, TipoTransazione.BonusSegnalazioneErrore, App_GlobalResources.Bonus.MessageError);
                    }
                    db.LOG_ERRORE.Add(logErrore);
                    db.SaveChanges();
                }
            }
            base.OnException(filterContext);
        }
Example #8
0
        public void OnException(ExceptionContext context)
        {
            string message = context.Exception.Message;            //错误信息

            if (_env.IsDevelopment())
            {
                message = context.Exception.StackTrace;                //堆栈信息
            }
            context.Result = new Microsoft.AspNetCore.Mvc.ObjectResult(message)
            {
                //Value = message,
                StatusCode = StatusCodes.Status500InternalServerError
            };

            //采用log4net 进行错误日志记录
            _logger.Error(string.Format("【自定义错误】:{0} \r\n【异常类型】:{1} \r\n【异常信息】:{2} \r\n【堆栈调用】:{3}",
                                        message,
                                        context.GetType().Name,
                                        context.Exception.Message,
                                        context.Exception.StackTrace));
        }
Example #9
0
        void IExceptionFilter.OnException(ExceptionContext filterContext)
        {
            //为了防止数据库连接不上无法记录日志,本地也进行记录
            Log = LogManager.GetLogger(filterContext.GetType());
            Log.Error(filterContext.Exception.Message, filterContext.Exception);

            var errBll = new ErrorlogBLL();
            //将错误日志插入数据库
            var log = new ErrorLog();

            log.ErrorMsg   = WebHelper.GetErrMsg(filterContext.Exception);
            log.ErrorPage  = filterContext.HttpContext.Request.Url.ToString();
            log.OperaterId = OnlineUser.OnLineUserID;
            log.Time       = DateTime.Now;
            try {
                errBll.Add(log);
            }
            catch (Exception ex) {
                Log.Error(WebHelper.GetErrMsg(ex));
            }
        }
Example #10
0
        public void OnException(ExceptionContext context)
        {
            this._logger.LogError(
                eventId: new EventId(context.Exception.HResult),
                exception: context.Exception,
                message: context.Exception.Message);

            if (context.GetType() == typeof(LocationDomainException))
            {
                var json = new JsonErrorResponse()
                {
                    Messages = new[] { context.Exception.Message }
                };

                context.Result = new BadRequestObjectResult(json);
                context.HttpContext.Response.StatusCode = StatusCodes.Status400BadRequest;
            }
            else
            {
                var json = new JsonErrorResponse()
                {
                    Messages = new[] { Resources.Exception_Unknown }
                };

                if (this._environment.IsDevelopment())
                {
                    json.DeveloperMessage = context.Exception;
                }
                ;

                context.Result = new InternalServerErrorObjectResult(json);
                context.HttpContext.Response.StatusCode = StatusCodes.Status500InternalServerError;
            }

            context.ExceptionHandled = true;
        }