我有这个控制器
[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请求以这种方式运行?
可以在此处找到重现此行为的回购.