ExceptionFilter.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using Microsoft.AspNetCore.Http;
  2. using Microsoft.AspNetCore.Mvc;using WMS.BZWeb;
  3. using Microsoft.AspNetCore.Mvc.Filters;
  4. using WMS.Info;
  5. using WMS.Util;
  6. using log4net;
  7. namespace WMS.BZWeb.Extensions
  8. {
  9. public class ExceptionFilter : IExceptionFilter
  10. {
  11. /// <summary>
  12. /// 发生异常时进入
  13. /// </summary>
  14. /// <param name="context"></param>
  15. public void OnException(ExceptionContext context)
  16. {
  17. if (context.ExceptionHandled == false)
  18. {
  19. context.Result = new ContentResult
  20. {
  21. Content = new ResInfo { code = EResponseCode.Fail, info = context.Exception.Message, data = "" }.ToJson(),//这里是把异常抛出。也可以不抛出。
  22. StatusCode = StatusCodes.Status200OK,
  23. ContentType = "text/html;charset=utf-8"
  24. };
  25. }
  26. context.ExceptionHandled = true;
  27. //LogFactory.GetLogger(typeof(ExceptionFilter)).Error(context.Exception );
  28. //var logIBLL = IocManager.Instance.GetService<LogIBLL>();
  29. //LogEntity logEntity = new LogEntity();
  30. //logEntity.F_CategoryId = 4;
  31. //logEntity.F_OperateTypeId = ((int)OperationType.Exception).ToString();
  32. //logEntity.F_OperateType = EnumAttribute.GetDescription(OperationType.Exception);
  33. //logEntity.F_OperateAccount = ContextHelper.GetItem("account") as string;
  34. //logEntity.F_OperateUserId = ContextHelper.GetItem("userId") as string;
  35. //logEntity.F_Module = context.HttpContext.Request.Path;
  36. //logEntity.F_IPAddress = context.HttpContext.Connection.RemoteIpAddress.ToString();
  37. //logEntity.F_ExecuteResult = -1;
  38. //logEntity.F_ExecuteResultJson = logIBLL.ExceptionFormat(context.Exception);
  39. //logIBLL.Write(logEntity).GetAwaiter().GetResult();
  40. }
  41. }
  42. }