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

时间:2017-09-20 04:55:25

标签: asp.net-core

我注意到当你在visual studio中创建一个默认的asp.net核心项目时,会出现一个如下所示的Error动作:

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

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

2 个答案:

答案 0 :(得分:3)

没有人存储任何"详细信息"为了你。

这只是您应该在处理用户请求的类/服务之间传递的标识符,并且当每个服务需要记录某些内容时,它可以包含此ID,从而确保您可以(稍后)在日志中跟踪用户请求完成。

答案 1 :(得分:3)

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

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

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

    return View();
}