我注意到当你在visual studio中创建一个默认的asp.net核心项目时,会出现一个如下所示的Error动作:
public IActionResult Error()
{
ViewData["RequestId"] = Activity.Current?.Id ?? HttpContext.TraceIdentifier;
return View();
}
错误页面正确显示了RequestId,但是,如果我的用户向我发送了该错误的屏幕截图,我就不知道如何检查该错误的详细信息。这存储在哪里?
答案 0 :(得分:3)
没有人存储任何"详细信息"为了你。
这只是您应该在处理用户请求的类/服务之间传递的标识符,并且当每个服务需要记录某些内容时,它可以包含此ID,从而确保您可以(稍后)在日志中跟踪用户请求完成。
答案 1 :(得分:3)
ExceptionHandlerMiddleware将异常作为ExceptionHandlerFeature存储在HttpContext中。
因此,在错误操作中,您可以通过执行类似的操作来获取错误消息,
public IActionResult Error()
{
var ehf = HttpContext.Features.Get<IExceptionHandlerFeature>();
ViewData["ErrorMessage"] = ehf.Error.Message;
return View();
}