asp.net - MVC6 - 处理未处理的异常,但仍然有错误页面重定向

标签 asp.net exception owin asp.net-core-mvc middleware

在我的 MVC6 应用程序中,我创建了一个中间件来使用 Invoke 任务处理全局未处理的异常,如下所示:

try
{
    await _next.Invoke(context);
}
catch (System.Exception e)
{
    ... Log the exception here...
}

我面临的问题是,如果我在添加 UseDeveloperExceptionPage/UseExceptionHandle 之前将其添加到配置部分中,则中间件中的 catch block 不会被命中。 当我在 UseDeveloperExceptionPage/UseExceptionHandle 之后添加此内容时,错误页面或模块未得到处理。

我怎样才能不干扰错误页面/模块,但仍然捕获管道中的错误并记录它?

提前致谢。

最佳答案

这是因为异常页面需要有一个Exception对象才能使用。您的代码捕获了异常,然后将其抑制。尝试像这样重新抛出异常:

try
{
    await _next.Invoke(context);
}
catch (System.Exception e)
{
    //Log the exception here...
    throw;
}

关于asp.net - MVC6 - 处理未处理的异常,但仍然有错误页面重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36113690/

相关文章:

c# - SQLite.SQLite3 : Exception System. DllNotFoundException

c++ - Try-Catch 不捕获异常

c# - 是否有 Owin.Security.Providers.OpenID 的强命名版本

asp.net-mvc - ASP.NET MVC 登录成功后未登录

javascript - 如何使用 ASP.NET 向 Web 用户显示本地化的日期和时间信息

c# - 不将 ListItem 文本包装在 Horizo​​ntal CheckBoxList 中

c# - 当使用TryUpdateModel绑定(bind)时,MVC ValidationSummary会忽略模型级别的验证错误

Java IO 异常捕获

asp.net-web-api - ASP 身份 OAuth token - 我应该在移动应用程序流中使用 ValidateClientAuthentication() 和 Secret 吗?

c# - 使用 OAuth 连接到 Windows Azure Active Directory