Web API - 自定义错误 - 管道早期

时间:2016-10-14 12:24:18

标签: c# asp.net-web-api error-handling

希望返回一个自定义错误页面而不是黄色屏幕,以查找WebApi项目中的错误,这是在管道的早期发生的。

我已经替换了默认的IExceptionHandler。

处理比Exception过滤器更多的错误,它不会处理

  • 异常过滤器内的错误
  • 与路由相关的例外
  • Message Handlers类中的错误
  • Controller Constructor中的错误

但是,并非所有异常都通过替换IExceptionHandler

来处理

E.g。如果我在Application_BeginRequest中抛出一个错误(只是管道中早期出现错误的一个例子),它就不会被这个拿起,我得到一个黄色的屏幕。启用自定义错误后,它会显示黄色屏幕,但仍为黄色屏幕。

如何处理所有错误(甚至在管道的早期),并使用正确的响应代码返回自定义JSON错误,就像自定义异常处理程序触发时一样。

一些文章 http://www.c-sharpcorner.com/article/exception-handling-in-asp-net-web-api/ https://www.exceptionnotfound.net/the-asp-net-web-api-exception-handling-pipeline-a-guided-tour/ https://www.jayway.com/2016/01/08/improving-error-handling-asp-net-web-api-2-1-owin/ (我没有使用OWIN,但包含在内作为参考)

我可以捕获Global.asax Application_Error事件中的错误

1 个答案:

答案 0 :(得分:0)

您可以做的是在global.asax中的application_error方法中返回带有空对象的json响应,或者使用参数0等。