自定义特性:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.Mvc;
  6.  
  7. namespace Niunan.MVCShop.Code
  8. {
  9. public class MyExecptionAttribute : HandleErrorAttribute
  10. {
  11. public static Queue<Exception> ExceptionQueue = new Queue<Exception>();//创建队列.
  12.  
  13. public override void OnException(ExceptionContext filterContext)
  14. {
  15. //将异常信息入队.
  16. ExceptionQueue.Enqueue(filterContext.Exception);//将异常信息入队.
  17. //filterContext.HttpContext.Response.Redirect("/error.html");
  18. base.OnException(filterContext);
  19. }
  20. }
  21. }

全局Global文件

  1. using Niunan.Utility;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Threading;
  6. using System.Web;
  7. using System.Web.Http;
  8. using System.Web.Mvc;
  9. using System.Web.Routing;
  10.  
  11. namespace Niunan.MVCShop
  12. {
  13. // 注意: 有关启用 IIS6 或 IIS7 经典模式的说明,
  14. // 请访问 http://go.microsoft.com/?LinkId=9394801
  15. public class MvcApplication : System.Web.HttpApplication
  16. {
  17. protected void Application_Start()
  18. {
  19. AreaRegistration.RegisterAllAreas();
  20.  
  21. WebApiConfig.Register(GlobalConfiguration.Configuration);
  22. RouteConfig.RegisterRoutes(RouteTable.Routes);
  23.  
  24. GlobalFilters.Filters.Add(new Code.MyExecptionAttribute()); //NET4建立的项目的话则是在APP_Stars/ConfigFilter.cs中
  25.  
  26. //通过线程开启一个线程,然后不停的从队列中或数据
  27. string filePath = Server.MapPath("/Log/");
  28. ThreadPool.QueueUserWorkItem(o =>
  29. {
  30. while (true)
  31. {
  32. try
  33. {
  34. if (Code.MyExecptionAttribute.ExceptionQueue.Count > )
  35. {
  36. Exception ex = Code.MyExecptionAttribute.ExceptionQueue.Dequeue();//从队列中拿出数据
  37.  
  38. if (ex != null)
  39.  
  40. {
  41. Tool.TxtLog(ex.ToString(), filePath + DateTime.Now.ToString("yyyyMMdd")+".txt");
  42. }
  43. else
  44. {
  45. Thread.Sleep();
  46. }
  47. }
  48. else
  49. {
  50. Thread.Sleep();//避免了CPU空转。
  51. }
  52. }
  53. catch (Exception ex)
  54. {
  55. Code.MyExecptionAttribute.ExceptionQueue.Enqueue(ex);
  56.  
  57. }
  58. }
  59.  
  60. }, filePath);
  61. }
  62. }
  63. }

转  http://www.cnblogs.com/niunan/p/5736809.html

自定义过滤器,解决action方法名

回到筛选器public string ActionName { get; set; },其中ActionName是自定义Action的名称,比如在Create中直接[SupportFilter]那么ActionName取得就是Create,这将和你的数据库操作码进行对应的,那么我的方法是CreateAttr,那么要使用Create这个操作码,怎么办
那么就是

  1. [SupportFilter(ActionName = "Create")]
  2. public ActionResult CreateAttr()

那么类似的写法

  1. [SupportFilter(ActionName = "Index")]
  2. public JsonResult GetList()

MVC 全局异常处理(适用多人操作)的更多相关文章

  1. NET MVC全局异常处理(一) 【转载】网站遭遇DDoS攻击怎么办 使用 HttpRequester 更方便的发起 HTTP 请求 C#文件流。 Url的Base64编码以及解码 C#计算字符串长度,汉字算两个字符 2019周笔记(2.18-2.23) Mysql语句中当前时间不能直接使用C#中的Date.Now传输 Mysql中Count函数的正确使用

    NET MVC全局异常处理(一)   目录 .NET MVC全局异常处理 IIS配置 静态错误页配置 .NET错误页配置 程序设置 全局异常配置 .NET MVC全局异常处理 一直知道有.NET有相关 ...

  2. .NET MVC全局异常处理(二)

    目录 .NET MVC全局异常处理(二) MVC过滤器Filter .NET MVC全局异常处理(二) 对上节的内容进行了补充 MVC过滤器Filter MVC有四种过滤器:Authorization ...

  3. .NET MVC全局异常处理(一)

    目录 .NET MVC全局异常处理 IIS配置 静态错误页配置 .NET错误页配置 程序设置 全局异常配置 .NET MVC全局异常处理 一直知道有.NET有相关的配置,但没有实际做过,以为改下设定就 ...

  4. Spring MVC 全局异常处理&文件上传

    Spring MVC 全局异常处理 使用SimpleMappingExceptionResolver实现异常处理 在welcome-servlet.xml进行如下配置: <bean class= ...

  5. MVC 全局异常处理及禁用显示头

    MVC网站的global.asax中的Application_Start方法里,有这样一段代码: public class MvcApplication : System.Web.HttpApplic ...

  6. Spring MVC全局异常处理与拦截器校检

    在使用Spring MVC进行开发时,总是要对系统异常和用户的异常行为进行处理,以提供给用户友好的提示,也可以提高系统的安全性. 拦截系统响应错误 首先是拦截系统响应错误,这个可以在web.xml中配 ...

  7. Spring MVC全局异常处理

    继承HandlerExceptionResolver接口实现自己的处理方法,如: public class MyHandlerExceptionResolver implements HandlerE ...

  8. spring mvc 全局异常处理

    package com.tool; public class MyException extends Exception{ public String Msg; public String ErrCo ...

  9. Spring MVC全局异常后返回JSON异常数据

    问题: 当前项目是作为手机APP后台支持,使用spring mvc + mybaits + shiro进行开发.后台服务与手机端交互是发送JSON数据.如果后台发生异常,会直接返回异常页面,显示异常内 ...

随机推荐

  1. 9) 十分钟学会android--使用Fragment建立动态UI

    为了在 Android 上为用户提供动态的.多窗口的交互体验,需要将 UI 组件和 Activity 操作封装成模块进行使用,这样我们就可以在 Activity 中对这些模块进行切入切出操作.可以用  ...

  2. 1350 Taxi Cab Scheme DAG最小路径覆盖

    对于什么是DAG最小路径覆盖以及解题方法在我的另外的博客已经有了.http://www.cnblogs.com/Potato-lover/p/3980470.html 此题的题意: 公交车(出租车)车 ...

  3. max 宏定义取消:error C2589: error C2059: 语法错误 : “::”

    原文链接:http://blog.csdn.net/danelumax2/article/details/9172465有修改! 一:关于Pcl和WIndef的冲突: 1. 错误输出 ./zlibra ...

  4. C# 响应一个html页面

    System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append("<html><head ...

  5. java操作Excel的poi基础语法

    创建一个简单的实列 package com.java.poi; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache ...

  6. codeforces 468B two set(并查集)

    链接 B. Two Sets 题意 给两个集合A B,两个数a b,n个数x,分配n个数到两个集合,要求x , a-x在同一个集合,x , b-x在同一个集合,属于A集合的数输出0,B的输出1,无解输 ...

  7. Nginx+php-fpm 502 504问题

    常出现502,504错误 思路: 增大nginx与php-fpm通信时的缓存文件大小与个数 静态绑定5个php-fpm进程,减少频率启动进程的开销 利用sock文件代替tcp端口通信 解决办法: 调整 ...

  8. Codeforces Round #468 (Div. 2, based on Technocup 2018 Final Round)B. World Cup

    The last stage of Football World Cup is played using the play-off system. There are n teams left in ...

  9. 训练1-V

    输入2个正整数A,B,求A与B的最大公约数. Input 2个数A,B,中间用空格隔开.(1<= A,B <= 10^9) Output 输出A与B的最大公约数. Sample Input ...

  10. java的值传递与引用传递

    一. 经常搞不清楚,当一个对象做为参数传入到方法中时,为啥有时候值能被改变,有时候又不会改变,以下说明原因: 1.当传入的参数,在方法中能被改变的为 引用传递 2.当传入的参数,在方法中没被改变的为 ...