【问题标题】:Web API - custom errors - early in pipelineWeb API - 自定义错误 - 管道早期
【发布时间】:2017-02-23 21:09:17
【问题描述】:

希望针对在管道早期发生的 WebApi 项目中的错误返回自定义错误页面,而不是黄屏。

我已经替换了默认的 IExceptionHandler。

它比不处理的异常过滤器处理更多错误

  • 异常过滤器内部出错
  • 与路由相关的异常
  • 消息处理程序类中的错误
  • 控制器构造函数中的错误

然而并不是所有的异常都通过替换 IExceptionHandler 来处理

例如如果我在 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 事件中捕获错误

【问题讨论】:

  • 我认为您正在努力,如果这么早出现错误,那么您肯定写错了,代码不会生效。很高兴我错了

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-09
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 1970-01-01
    相关资源
    最近更新 更多