using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc;using WMS.BZWeb; using Microsoft.AspNetCore.Mvc.Filters; using WMS.Info; using WMS.Util; using log4net; namespace WMS.BZWeb.Extensions { public class ExceptionFilter : IExceptionFilter { /// /// 发生异常时进入 /// /// public void OnException(ExceptionContext context) { if (context.ExceptionHandled == false) { context.Result = new ContentResult { Content = new ResInfo { code = EResponseCode.Fail, info = context.Exception.Message, data = "" }.ToJson(),//这里是把异常抛出。也可以不抛出。 StatusCode = StatusCodes.Status200OK, ContentType = "text/html;charset=utf-8" }; } context.ExceptionHandled = true; //LogFactory.GetLogger(typeof(ExceptionFilter)).Error(context.Exception ); //var logIBLL = IocManager.Instance.GetService(); //LogEntity logEntity = new LogEntity(); //logEntity.F_CategoryId = 4; //logEntity.F_OperateTypeId = ((int)OperationType.Exception).ToString(); //logEntity.F_OperateType = EnumAttribute.GetDescription(OperationType.Exception); //logEntity.F_OperateAccount = ContextHelper.GetItem("account") as string; //logEntity.F_OperateUserId = ContextHelper.GetItem("userId") as string; //logEntity.F_Module = context.HttpContext.Request.Path; //logEntity.F_IPAddress = context.HttpContext.Connection.RemoteIpAddress.ToString(); //logEntity.F_ExecuteResult = -1; //logEntity.F_ExecuteResultJson = logIBLL.ExceptionFormat(context.Exception); //logIBLL.Write(logEntity).GetAwaiter().GetResult(); } } }