当我用app.UseStatusCodePagesWithReExecute这个中间件处理404的时候,正常访问Test控制器,都正常,logger为什么会有404的消息?
这是要访问的Test控制器代码:
[Route("test")]
public class TestAController : Controller
{
private readonly ILogger<TestAController> logger;
public TestAController(ILogger<TestAController> logger)
{
this.logger = logger;
}
public IActionResult Index()
{
logger.LogInformation($"已经入控制器中的“Index”方法。");
logger.LogInformation("用于向客户展示用于测试视图。");
return Ok();
}
}
这是处理404错误的Error控制器代码:
[Route("error")]
public class ErrorController : Controller
{
private readonly ILogger<ErrorController> logger;
public ErrorController(ILogger<ErrorController> logger)
{
this.logger = logger;
}
public IActionResult Index()
{
var statusCode = Response.StatusCode;
logger.LogInformation($"{statusCode}");
return Ok();
}
}
这是 app.UseStatusCodePagesWithReExecute 中间件的代码:
app.UseStatusCodePagesWithReExecute("/error");
然后是在访问 /test 之后的 Logger 消息:
如何解决?
. Net 实战+RESTful思想纵深课程,开发优雅RESTful风格API。
了解课程