【发布时间】:2012-06-19 07:46:11
【问题描述】:
我在这里实现了异常过滤器:http://www.asp.net/web-api/overview/web-api-routing-and-actions/exception-handling 并在全球注册,就像 microsoft 或 stackoverflow-users (How to add global ASP.Net Web Api Filters?) 解释的那样。
public static void RegisterWebApiFilters(System.Web.Http.Filters.GlobalFilterCollection filters)
{
//other filters
filters.Add(new MyExceptionFilter());
}
但是如果我抛出异常,我的方法不会被调用。 仅当我将属性 [MyExceptionFilter] 添加到控制器方法时才调用我的异常处理方法,但我希望可以通过全局注册过滤器来避免所有方法的这种情况。
我尝试设置过滤器的顺序,但这没有效果。
编辑:我注意到,在新的 Wep Api RC 中,该方法称为“RegisterGlobalFilters”,这似乎是 MVC 过滤器集合。
如果我打电话
GlobalConfiguration.Configuration.Filters.Add(new MyExceptionFilter());
它有效。这是 Web Api 的集合。
看来我必须为 web api 构建自己的“FilterConfig”类...
【问题讨论】:
标签: exception-handling global asp.net-web-api