我有这个控制器
[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();
}
}
GET和POST请求均返回状态码500。这是预期行为。
但是,当我在Startup.cs文件中添加app.UseExceptionHandler("/api/debug/error");
时,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");
}
}
为什么添加 app.UseExceptionHandler("/api/debug/error");
会使得 POST 请求表现出这种行为?
可以在这里找到重现此问题的存储库。