小编use*_*253的帖子

使用ExceptionHandler PipeLine时,ASP.NET Core返回404而不是500

我有这个控制器

[Route("api/[controller]")]
public class ValuesController : Controller
{
    // GET api/values
    [HttpGet]
    public IEnumerable<string> Get()
    {
        Console.WriteLine("GET Index");
        throw new Exception();
    }

    // POST api/values
    [HttpPost]
    public void Post()
    {
        Console.WriteLine("POST Index");
        throw new Exception();
    }
}
Run Code Online (Sandbox Code Playgroud)

GET和POST请求都返回500的状态代码.这是预期的行为.

但是当我app.UseExceptionHandler("/api/debug/error"); 在Startup.cs文件中添加时,POST请求不再返回状态代码500,而是返回404.GET请求仍然可以正常工作,返回状态代码500.

DebugController

[Route("api/[controller]")]
public class DebugController : Controller
{


    [HttpGet("error")]
    public IActionResult Index()
    {
        return StatusCode(500,"Hello, World! From debug controller");
    }
}
Run Code Online (Sandbox Code Playgroud)

任何为什么添加idé app.UseExceptionHandler("/api/debug/error");会使POST请求以这种方式运行?

可以在此处找到重现此行为的回购.

c# asp.net asp.net-mvc asp.net-core

8
推荐指数
1
解决办法
636
查看次数

标签 统计

asp.net ×1

asp.net-core ×1

asp.net-mvc ×1

c# ×1