为什么在MVC里自定义异常捕获不管用了?麻烦大神看下!

krukur 2017-11-16 09:06:48
在里用的是ASP.NET的自定义异常捕获,但就是捕获不到自定义的异常,如果在web.config的system.web节点下设置默认的错误页面,又能转到这个错误页面。
代码如下:

Global.asax:
public class MvcApplication : SpringMvcApplication // System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);

#region
string fileLogPath = Server.MapPath("Log/");
ThreadPool.QueueUserWorkItem((a) => {
while (true)
{
if (MyExceptionAttribute.ExceptionQueue.Count > 0)
{
Exception ex = MyExceptionAttribute.ExceptionQueue.Dequeue();
string fileName = DateTime.Now.ToString("yyyy-MM-dd") + ".txt";
File.AppendAllText(fileLogPath + fileName, ex.ToString(), System.Text.Encoding.UTF8);
}else
{
Thread.Sleep(5000);
}
}
}, fileLogPath);
#endregion
}


FilterConfig.cs
namespace Andrew.Royal.WebApp
{
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
// filters.Add(new HandleErrorAttribute());
filters.Add(new MyExceptionAttribute());
}
}
}


MyExceptionAttribute.cs
namespace Andrew.Royal.WebApp.Models
{
public class MyExceptionAttribute : HandleErrorAttribute
{
public static Queue<Exception> ExceptionQueue = new Queue<Exception>();
public override void OnException(ExceptionContext filterContext)
{
base.OnException(filterContext);
ExceptionQueue.Enqueue(filterContext.Exception);
//怎么都跳转不到这个页面
filterContext.HttpContext.Response.Redirect("/Error.html");
}
}
}


web.config
  <system.web>
<customErrors mode="On" ></customErrors>
<!--defaultRedirect="/Error2.html"-->

<authentication mode="None"/>
<compilation debug="true" targetFramework="4.5.2"/>
<httpRuntime targetFramework="4.5.2"/>
</system.web>
...全文
117 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
krukur 2017-11-16
  • 打赏
  • 举报
回复
没有人帮忙看下吗

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧