相关疑难解决方法(0)

如何让ELMAH使用ASP.NET MVC [HandleError]属性?

我正在尝试使用ELMAH来记录我的ASP.NET MVC应用程序中的错误,但是当我在控制器上使用[HandleError]属性时,ELMAH在发生错误时不会记录任何错误.

正如我猜测它,因为ELMAH只记录未处理的错误,[HandleError]属性正在处理错误,因此无需记录它.

我如何修改或如何修改属性,以便ELMAH可以知道有错误并记录它..

编辑:让我确保每个人都理解,我知道我可以修改那个不是我问的问题的属性... ELMAH在使用handleerror属性时会被绕过,这意味着它不会看到有错误因为它被处理了已经由属性...我要问的是有一种方法让ELMAH看到错误并记录它即使属性处理它...我搜索周围,没有看到任何方法调用强制它来记录错误....

asp.net-mvc logging elmah

562
推荐指数
7
解决办法
11万
查看次数

ExceptionContext.ExceptionHandled更改为true.处理例外的地方在哪里?

我正在使用全局操作过滤器来处理和记录所有异常.

    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new ElmahHandleErrorAttribute());
        filters.Add(new HandleErrorAttribute());
    }
Run Code Online (Sandbox Code Playgroud)

这是全局动作过滤器ElmahHandleErrorAttribute的定义方式 - 它会覆盖该OnException方法.

public class ElmahHandleErrorAttribute : System.Web.Mvc.HandleErrorAttribute
{
    public override void OnException(ExceptionContext context)
    {
       //Is the exception handled already? context.ExceptionHandled seems to be true here
        if (!context.IsChildAction && (context.HttpContext.IsCustomErrorEnabled))
        {
            //Do other stuff stuff
            //Log to Elmah               
        }
    }
   ...
 }
Run Code Online (Sandbox Code Playgroud)

我不明白为什么方法执行context.ExceptionHandled时值为true OnException.如何处理此异常?

-EDIT- 我有一customErrorsWeb.Config.我有一个ErrorController班级和行动叫做GeneralHttp404.

<customErrors mode ="On" defaultRedirect="Error/General">
      <error …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc exception-handling custom-error-pages asp.net-mvc-3

8
推荐指数
1
解决办法
8262
查看次数

如何处理“从客户端检测到潜在危险的Request.Form值”?

我在 ASP.NET MVC Framework 应用程序的处理程序中收到了一些“一般”错误protected void Application_Error()。异常消息是:

\n
\n

从客户端检测到潜在危险的 Request.Form 值

\n
\n

有很多方法可以触发此操作;仅一个例子是拨打电话,例如

\n
http:/www.mywebsite.com/http:/www.mywebsite.com/\n
Run Code Online (Sandbox Code Playgroud)\n

我想仅为这种异常创建一个“过滤器”,并相应地重定向或管理请求。我不想禁用它,只是想管理它。我也不希望它落入通用protected void Application_Error()处理程序\xe2\x80\x94 中,或者至少,我想在该方法内部管理它,这样它就不会被我的日志记录等处理。

\n

我该如何处理这个问题?

\n

asp.net-mvc exception .net-4.6.1

5
推荐指数
1
解决办法
1万
查看次数

RegisterGlobalFilters和HandleErrorAttribute不起作用

在与RegisterGlobalFilters和HandleErrorAttribute永远斗争之后,我决定回到原点.我使用模板在VS10中创建了一个新的MVC 3项目.在About-action中添加一个抛出DivideByZeroException并启动dev服务器.预计不会看到黄色的屏幕.

但我做到了.

为什么这对我不起作用?

更新

archil和Adam Tuliper的建议有点奏效.调用了Error视图.

然后我继续在RegisterGlobalFilters中添加它.

filters.Add(new HandleErrorAttribute { ExceptionType = typeof(DivideByZeroException), View = "DivideByZeroException", Order = 1 });
filters.Add(new HandleErrorAttribute { View = "AllOtherExceptions", Order = 2 });
Run Code Online (Sandbox Code Playgroud)

调用了AllOtherExceptions视图.为什么不是DivideByZeroException视图?

后续问题已在此处发布.

asp.net-mvc handleerror asp.net-mvc-3

1
推荐指数
1
解决办法
4831
查看次数