【问题标题】:Exception handling ASP .NET Core MVC 6异常处理 ASP .NET Core MVC 6
【发布时间】:2017-06-18 18:03:42
【问题描述】:

我现在的配置:

public void ConfigureDevelopment(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
    //app.UseDeveloperExceptionPage();
    //app.UseDatabaseErrorPage();

    app.UseStatusCodePagesWithRedirects("/error/{0}");
    app.UseExceptionHandler();
    Configure(app);
}

我有这个控制器,它应该在服务器注册任何异常时执行。当我执行“错误/测试”时,我按预期重定向到“错误/500”。如果我手动执行“错误/异常”,我会得到服务器 500 本机错误,而不是我的。

public class ErrorController : Controller
{
    [Route("error/404")]
    public ActionResult Error404()
    {
        return View("404");
    }

    [Route("error/500")]
    public ActionResult Error500()
    {
        return View("500");
    }

    [Route("error/test")]
    public ActionResult Test()
    {
        return new StatusCodeResult(500);
    }

    [Route("error/exception")]
    public ActionResult Exception()
    {
        throw new Exception("Should redirect to error/500");
        return Content("nope");
    }
}

知道如何在动作中引发异常时将“错误/异常”重定向到“错误/500”吗?

谢谢。

【问题讨论】:

标签: c# asp.net-mvc error-handling asp.net-core-mvc


【解决方案1】:

当然,没问题。使用app.UseExceptionHandler("/error/500"); 然后就不再需要了:

[Route("error/exception")]
public ActionResult Exception()
{
    throw new Exception("Should redirect to error/500");
    return Content("nope");
}

【讨论】:

    【解决方案2】:

    我相信您可以在一个操作上指定多个路由,因此您不需要“异常”操作,只需将其路由添加到 500:

    public class ErrorController : Controller
    {
        [Route("error/404")]
        public ActionResult Error404()
        {
            return View("404");
        }
    
        [Route("error/500")]
        [Route("error/exception")]
        public ActionResult Error500()
        {
            return View("500");
        }
    
        [Route("error/test")]
        public ActionResult Test()
        {
            return new StatusCodeResult(500);
        }
    
    } 
    

    【讨论】:

      猜你喜欢
      • 2013-07-17
      • 1970-01-01
      • 1970-01-01
      • 2018-11-18
      • 2022-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-21
      相关资源
      最近更新 更多