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

Asp.net core 如何跟踪asp.net核心中的错误,asp.net-core,Asp.net Core,我注意到,在visual studio中创建默认asp.net核心项目时,会出现如下错误操作: public IActionResult Error() { ViewData["RequestId"] = Activity.Current?.Id ?? HttpContext.TraceIdentifier; return View(); } 错误页面正确地显示了RequestId,但是,如果我的用户向我发送了错误的屏幕截图,我不知道如何

我注意到,在visual studio中创建默认asp.net核心项目时,会出现如下错误操作:

    public IActionResult Error()
    {
        ViewData["RequestId"] = Activity.Current?.Id ?? HttpContext.TraceIdentifier;
        return View();
    }
错误页面正确地显示了RequestId,但是,如果我的用户向我发送了错误的屏幕截图,我不知道如何检查该错误的详细信息。这个存储在哪里?

没有人为您存储任何“详细信息”


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

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

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

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

    return View();
}
public IActionResult错误()
{
var ehf=HttpContext.Features.Get();
ViewData[“ErrorMessage”]=ehf.Error.Message;
返回视图();
}