MVC 全局异常处理(适用多人操作)
自定义特性:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace Niunan.MVCShop.Code
{
public class MyExecptionAttribute : HandleErrorAttribute
{
public static Queue<Exception> ExceptionQueue = new Queue<Exception>();//创建队列. public override void OnException(ExceptionContext filterContext)
{
//将异常信息入队.
ExceptionQueue.Enqueue(filterContext.Exception);//将异常信息入队.
//filterContext.HttpContext.Response.Redirect("/error.html");
base.OnException(filterContext);
}
}
}
全局Global文件
using Niunan.Utility;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Routing; namespace Niunan.MVCShop
{
// 注意: 有关启用 IIS6 或 IIS7 经典模式的说明,
// 请访问 http://go.microsoft.com/?LinkId=9394801
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration);
RouteConfig.RegisterRoutes(RouteTable.Routes); GlobalFilters.Filters.Add(new Code.MyExecptionAttribute()); //NET4建立的项目的话则是在APP_Stars/ConfigFilter.cs中 //通过线程开启一个线程,然后不停的从队列中或数据
string filePath = Server.MapPath("/Log/");
ThreadPool.QueueUserWorkItem(o =>
{
while (true)
{
try
{
if (Code.MyExecptionAttribute.ExceptionQueue.Count > )
{
Exception ex = Code.MyExecptionAttribute.ExceptionQueue.Dequeue();//从队列中拿出数据 if (ex != null) {
Tool.TxtLog(ex.ToString(), filePath + DateTime.Now.ToString("yyyyMMdd")+".txt");
}
else
{
Thread.Sleep();
}
}
else
{
Thread.Sleep();//避免了CPU空转。
}
}
catch (Exception ex)
{
Code.MyExecptionAttribute.ExceptionQueue.Enqueue(ex); }
} }, filePath);
}
}
}
转 http://www.cnblogs.com/niunan/p/5736809.html
自定义过滤器,解决action方法名
回到筛选器public string ActionName { get; set; },其中ActionName是自定义Action的名称,比如在Create中直接[SupportFilter]那么ActionName取得就是Create,这将和你的数据库操作码进行对应的,那么我的方法是CreateAttr,那么要使用Create这个操作码,怎么办
那么就是
[SupportFilter(ActionName = "Create")]
public ActionResult CreateAttr()
那么类似的写法
[SupportFilter(ActionName = "Index")]
public JsonResult GetList()
MVC 全局异常处理(适用多人操作)的更多相关文章
- 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有相关 ...
- .NET MVC全局异常处理(二)
目录 .NET MVC全局异常处理(二) MVC过滤器Filter .NET MVC全局异常处理(二) 对上节的内容进行了补充 MVC过滤器Filter MVC有四种过滤器:Authorization ...
- .NET MVC全局异常处理(一)
目录 .NET MVC全局异常处理 IIS配置 静态错误页配置 .NET错误页配置 程序设置 全局异常配置 .NET MVC全局异常处理 一直知道有.NET有相关的配置,但没有实际做过,以为改下设定就 ...
- Spring MVC 全局异常处理&文件上传
Spring MVC 全局异常处理 使用SimpleMappingExceptionResolver实现异常处理 在welcome-servlet.xml进行如下配置: <bean class= ...
- MVC 全局异常处理及禁用显示头
MVC网站的global.asax中的Application_Start方法里,有这样一段代码: public class MvcApplication : System.Web.HttpApplic ...
- Spring MVC全局异常处理与拦截器校检
在使用Spring MVC进行开发时,总是要对系统异常和用户的异常行为进行处理,以提供给用户友好的提示,也可以提高系统的安全性. 拦截系统响应错误 首先是拦截系统响应错误,这个可以在web.xml中配 ...
- Spring MVC全局异常处理
继承HandlerExceptionResolver接口实现自己的处理方法,如: public class MyHandlerExceptionResolver implements HandlerE ...
- spring mvc 全局异常处理
package com.tool; public class MyException extends Exception{ public String Msg; public String ErrCo ...
- Spring MVC全局异常后返回JSON异常数据
问题: 当前项目是作为手机APP后台支持,使用spring mvc + mybaits + shiro进行开发.后台服务与手机端交互是发送JSON数据.如果后台发生异常,会直接返回异常页面,显示异常内 ...
随机推荐
- 第4章 部署模式 Three-Tiered Distribution(三级分布)
影响因素 Tiered Distribution 中讨论的影响因素也适用于此模式.有关这些通用影响因素的讨论,请参阅"Tiered Distribution".下列影响因素仅适用于 ...
- 仿QQ浏览器mac版官网主页 html+css3特效
这是一款超酷的CSS3动态背景动画特效,CSS3仿QQ浏览器官网彗星动画背景特效. 在线演示本地下载
- 暴雪的hash算法[翻译]
原文来自:http://sfsrealm.hopto.org/inside_mopaq/chapter2.htm#hashes 促进历史进步的大多数契机都是在解决特定问题的过程中产生的,本文讨论一下M ...
- 一个关于C++拷贝构造的bug
#include <iostream> using namespace std; class A { public: A(int a) {}; A(const A&) = defa ...
- linux VFS 之一 :虚拟文件系统的面向对象设计思想
VFS的面向对象的思想,如下图: VFS在上层用户空间的进程与底层特定文件系统之间起到一个承上启下的作用, 对上:封装标准的系统调用接口给用户空间app,user space app不必关心特定文件系 ...
- vim牛逼的code工具: ctags+ cscope
自己总结 在我的工作目录里的.vimrc中做了这样的配置: set tags=tags; set autochdir 在项目根目录里利用"sudo ctags -R *", ...
- CodeForces-546D Soldier and Number Game 筛法+动态规划
题目链接:https://cn.vjudge.net/problem/CodeForces-546D 题意 抱歉,我给忘了,现在看题目又看不懂: P 思路 筛法+dp 话说这个函数应该是积性函数,然后 ...
- css文本两端对齐
在做表单时我们经常遇到让上下两个字段对齐的情况,比如姓名, 手机号码, 出生地.这样我们就要用到 text-align, text-justify样式了. text-align直接设为justify就 ...
- FreeMarker 页面静态化解决方案
一.网页的静态化方案 1.生成静态页面的时机:在做添加操作时,同时生成该新增内容的对应的静态页面 2.静态页面的名称:内容 id + ".html" 3.静态页面所在的路径:工程外 ...
- mybatis入门截图三
----------------------------------------------- <!-- 用户信息的综合查询 --> <select id="userlis ...