【发布时间】:2015-08-03 04:56:15
【问题描述】:
尽管我花了几个小时在网上搜索,但我找不到解决这个问题的方法。作为 Web API v2 的新手,对于有更多经验的人来说,这可能是一个非常简单的问题。
我有一个干净的 MVC 项目更新为使用 Web API v2。我已经通过 Nuget 安装了许多 ELMAH 包。
在 MVC 中使用普通 Home 控制器时,如果我放置了无效页面,例如/Home/test 它将生成 404。Elmah 反过来捕获了这一点,我仅从日志中知道哪些页面可能被破坏等。
我想将此级别的日志记录转移到 API 控制器。日志记录确实有效,但我必须向控制器抛出异常才能在 Elmah 中记录一些内容。
我猜像 404/415 错误之类的东西被归类为“已处理”异常,但我只记录了未处理的异常。
无论如何,我想要记录 API 控制器上的任何错误。通过这种方式,我可以监控 API 的使用情况以及调用客户端导致的任何错误。错误可能是 404s、不支持的数据类型的 415 等等。这样,如果来自客户端的发布数据有任何问题,我可以很容易地看到本应传回的响应。
提前致谢!
WebApi.config:
Public static void Register(HttpConfiguration config)
{
...
config.filters.add(new Elmah.Contrib.WebApi.ElmahHandleErrorApiAttribute());
}
过滤器配置:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new Elmah.Contrib.Mvc.ElmahHandleErrorAttribute());
filters.Add(new HandleErrorAttribute();
}
【问题讨论】:
-
Follow stackoverflow.com/help/how-to-ask 你能用有问题的代码更新你的帖子吗?
-
你好米兰,我已经更新以显示我在两个配置文件中使用的代码。
-
只是一个更新,说我已经找到了我想要的东西,尽管不是来自 Elmah。事后看来,我现在可能通过使用 Web API 附带的内置跟踪框架来做正确的事情。我只是要让 elmah 去处理未处理的异常。对于其他想要做同样的事情的人,请查看这篇文章asp.net/web-api/overview/testing-and-debugging/…
标签: asp.net asp.net-web-api elmah elmah.mvc