如何跟踪asp.net核心中的错误

use*_*456 4 asp.net-core

我注意到当你在 Visual Studio 中创建一个默认的 asp.net core 项目时,有一个错误动作,如下所示:

    public IActionResult Error()
    {
        ViewData["RequestId"] = Activity.Current?.Id ?? HttpContext.TraceIdentifier;
        return View();
    }
Run Code Online (Sandbox Code Playgroud)

错误页面正确显示了 RequestId,但是,如果我的用户向我发送了该错误的屏幕截图,我不知道如何检查该错误的详细信息。这是存储在哪里?

Lak*_*ono 5

ExceptionHandlerMiddleware 将异常作为 ExceptionHandlerFeature 存储在 HttpContext 中。

因此,在错误操作中,您可以通过执行以下操作来获取错误消息,

public IActionResult Error()
{
    var ehf = HttpContext.Features.Get<IExceptionHandlerFeature>();
    ViewData["ErrorMessage"] = ehf.Error.Message;

    return View();
}
Run Code Online (Sandbox Code Playgroud)