Asp.net Core 2应用程序中的活动ID

时间:2019-02-27 13:00:15

标签: asp.net-core-mvc

我已经使用MVC在Asp.net Core 2中创建了一个新应用程序。

enter image description here

然后在HomeController中打开错误操作方法

public IActionResult Error()
{
    return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}

我既不能理解Activity也不能理解HttpContext.TraceIdentifier。

让我感到更讨厌的是Activity.Current( Activity.Current?.Id )之后的问号(?)。一些新语法?

1 个答案:

答案 0 :(得分:1)

?null conditional operator。这是c#6中的一项新功能,使空检查更加容易。

Activity.Current?.IdHttpContext.TraceIdentifier在此情况下是唯一的跟踪ID,因此您可以将请求与日志和遥测相关联。

通常,如果您不使用application insightsmanaging activities yourself,则Activity.Current将为空,因此?存在。