MVC4 中的 ELMAH 和 API 控制器不记录错误

2024-05-07

在 MVC4 中使用 API 控制器,当控制器操作引发异常时,ELMAH 不会记录错误。

我认为问题在于 MVC4 将 HTTP 状态代码设置为 500,并且它返回 JSON 对象中的异常详细信息,但它不会抛出未处理的异常,因此 ELMAH 永远不会看到它。

如何让 ELMAH 捕获状态代码不是 200 的所有响应?


之前描述的 anwser 不起作用。我在我的测试服务器上尝试过并收到错误(“给定的过滤器实例必须实现以下一个或多个过滤器接口:IAuthorizationFilter、IActionFilter、IResultFilter、IExceptionFilter。”)

然后我意识到发生了什么......您正在尝试将自定义过滤器添加到 MVC 全局过滤器 (filters.Add(new ElmahHandledErrorLoggerFilter());)

为了解决这个问题,我将过滤器注册拆分为 GlobalFilter 和 HttpFilter

FilterConfig.cs

    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
    }

    public static void RegisterHttpFilters(HttpFilterCollection filters)
    {
        filters.Add(new ElmahHandledErrorLoggerFilter());
    }

全局.asax

    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    FilterConfig.RegisterHttpFilters(GlobalConfiguration.Configuration.Filters);

;-)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MVC4 中的 ELMAH 和 API 控制器不记录错误 的相关文章

随机推荐

  • 如果事件是系列的一部分,则对 iCalUId 进行过滤将返回空数组

    我的问题几乎相同这个问题 https stackoverflow com questions 46176211 filtering on icaluid returns empty array 我本来想在那里发表评论 但由于是新用户而无法这
  • 创建反应应用程序打字稿不加载 d.ts 文件

    我使用 create React app typescript 创建了一个项目 我有一些 d ts 文件 其中定义了接口类型和枚举 当我运行启动脚本时 它无法加载 d ts 文件 以下是我的 tsconfig 文件 compilerOpti
  • 仅当锚点尚未存在时,正则表达式才用锚点替换网址

    我以前见过类似的问题 但没有一个有效的解决方案 我试图用锚标记替换页面上的所有网址 但仅限那些不在锚标记内的网址 so http google com http google com应替换为 a href http google com h
  • 给定与总和匹配的长度的唯一 3 位数字 (-1,0,1) 序列的数量

    假设您有一个长度为 n 即空格数 的垂直游戏板 你有一个三面骰子 有以下选项 前进一 停留和后退 如果您低于或高于棋盘游戏空间的数量 则该游戏无效 一旦到达棋盘末端 唯一有效的动作就是 停留 给定确切的骰子投掷次数 t 是否可以通过算法计算
  • 更改 git diff 输出前后的行数

    我想增加更改之前和之后显示的行数git diff output 类似于grep A3 B5 根据git diff help git diff支持与标准相同的参数diff命令 w r t 上下文 U
  • 如何在 Windows 上的 Python 2.7 上安装 Tensorflow?

    我尝试通过 pip 安装 TensorFlow pip install tensorflow 但是得到这个错误 找不到满足tensorflow要求的版本 来自版本 这个问题有解决办法吗 我还是想通过pip安装 如果您只因为 Keras 而需
  • 为什么我不能使用 min 和 max 作为变量名?

    在这个 C 程序中 函数print nums不接受 这vector
  • 按权重分组

    给定以下数据框 import pandas as pd d pd DataFrame Age 18 20 20 56 56 Race A A A B B Response 3 2 5 6 2 Weight 0 5 0 5 0 5 1 2 1
  • 从 MongoDB+Node.js 获取数据到客户端 JavaScript

    如何使用 Node js 连接 MongoDB 然后将结果传递给客户端 JavaScript 并以 HTML 形式显示 var http require http var URL require url var Db require mon
  • 如何在 Julia `DataFrame` 中折叠具有重复时间戳的数据

    我有一个DataFrame对象如下所示 Row timestamp price volume 1 2011 08 14T14 14 40 10 40 0 779 2 2011 08 14T15 15 17 10 40 0 101 3 201
  • 无需动态分配的RSA实现

    典型的 RSA 实现包含一个多精度整数库 典型的多精度整数库使用动态分配将大整数表示为大小合适的机器字数组 我预计当使用多精度整数仅使用 RSA 2048 来加密或解密已知长度的消息 通常是对称加密密钥 时 可能会遇到数学整数的限制 并且它
  • 将行连接成 CLOB

    关于这个主题有很多类似的问题 但我找不到任何解决方案来考虑最终结果对于 varchar2 来说太大的任何问题 所以我想做的就是改变这一点 Column1 Column2 1 Hello 1 world 1 please help 2 Tha
  • 重写方法的返回类型可以不同吗?

    重写方法可以有不同的返回类型 Java supports covariant return types for overridden methods This means an overridden method may have a mo
  • 使用 python 提取 MP3 URL 的 ID3 标签并进行部分下载

    我需要提取远程 mp3 文件的 ID3 标签和元数据 我写了几行可以获取本地文件的ID3标签 from mutagen mp3 import MP3 import urllib2 audio MP3 Whistle mp3 songtitl
  • 在 Pandas 中按索引分组

    如何使用 groupby by 索引 1 2 3 它们的顺序相同 并获得属于每个索引范围的列分数的总和 基本上我有这个 index score 1 2 2 2 3 2 1 3 2 3 3 3 我想要的是 index score sum 1
  • Ionic 2 自定义后退按钮操作

    我想自定义此屏幕截图中提到的后退按钮的单击操作 我希望通过单击我不会返回到上一页 而是返回到我自己指定的页面 或者在返回之前进行处理 要自定义默认后退按钮操作 您需要覆盖返回按钮点击 NavBar 组件的方法 Step 1 在你的 自定义类
  • 将范围传递给 forEach

    我正在尝试使用回调方法addToCount而不是匿名函数forEach 但我无法访问this count其中 返回undefined function Words sentence this sentence sentence this c
  • 在 Transport.send(message) 上获取 ParseException

    由于某种原因 当我在 MimeMessage 上调用 Transport send 时 出现 javax mail internet ParseException 以前 当它只是一封纯文本电子邮件时 这是有效的 但是当我将其更改为同时包含文
  • Spring MVC 中拦截器和过滤器的区别

    我有点困惑Filter and Interceptor目的 据我从文档中了解到 Interceptor在请求之间运行 另一方面Filter在渲染视图之前运行 但在控制器渲染响应之后运行 那么两者的区别在哪里postHandle 在拦截器和d
  • MVC4 中的 ELMAH 和 API 控制器不记录错误

    在 MVC4 中使用 API 控制器 当控制器操作引发异常时 ELMAH 不会记录错误 我认为问题在于 MVC4 将 HTTP 状态代码设置为 500 并且它返回 JSON 对象中的异常详细信息 但它不会抛出未处理的异常 因此 ELMAH