C# 异常处理ASP.NET核心MVC 6
我目前的配置:C# 异常处理ASP.NET核心MVC 6,c#,asp.net-mvc,error-handling,asp.net-core-mvc,C#,Asp.net Mvc,Error Handling,Asp.net Core Mvc,我目前的配置: public void ConfigureDevelopment(IApplicationBuilder app, ILoggerFactory loggerFactory) { //app.UseDeveloperExceptionPage(); //app.UseDatabaseErrorPage(); app.UseStatusCodePagesWithRedirects("/error/{0}"); app.UseExceptionHan
public void ConfigureDevelopment(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
//app.UseDeveloperExceptionPage();
//app.UseDatabaseErrorPage();
app.UseStatusCodePagesWithRedirects("/error/{0}");
app.UseExceptionHandler();
Configure(app);
}
我有一个控制器,它应该在服务器注册任何异常时执行。当我执行“error/test”时,我会按照预期重定向到“error/500”。如果我手动执行“error/exception”,我会得到server500本机错误,而不是我的
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");
}
}
知道在操作中抛出异常时如何将“error/exception”重定向到“error/500”吗
谢谢。好的,没问题。使用app.UseExceptionHandler(“/error/500”)这样就不再需要它了:
[Route("error/exception")]
public ActionResult Exception()
{
throw new Exception("Should redirect to error/500");
return Content("nope");
}
我相信您可以在一个操作中指定多个路由,因此您不需要“异常”操作,只需将其路由添加到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);
}
}
可能有用的是: