我需要一种方法来处理和记录在一个地方发生在web api中的所有异常。 我重写了ExceptionLogger和ExceptionHandler的方法,但代码中断并且从不触发处理机制。ASP.NET WEB API 2:异常处理程序和记录器不处理所有错误
如果我改变了我的控制器有相同的API方法,这会导致另一个错误:
[RoutePrefix("api/Ads")]
public class AdsController : ApiController
{
public IHttpActionResult Get()
{
return Ok(Ad.GetAds());
}
public IHttpActionResult Get(object name)
{
return Ok();
}
}
处理程序会捕获错误:
在这种情况下,错误是:
Multiple actions were found that match the request:
ExceptionLogger和ExceptionHandler是否仅捕获web api在更高级别引起的错误?以及我应该怎么做来处理所有的错误,是例外过滤器也必须添加的解决方案?
我已经添加了异常过滤器,但它也不起作用。我也尝试创建自己的异常并抛出它们,但它没有触发任何异常过滤器或exceptionLogger。我不知道可能是我错过了什么。 – Coding
我可能是错的,但我不认为你的'多个动作被发现匹配请求:'错误将由任何代码处理处理....我可能是真的错了。无论如何,我不会期待它。 –
是的,因为它在执行动作之前就已经发生了。但是,为什么任何机制都不会处理动作本身内部引发的错误,比如“抛出新的Exception()”。 – Coding