MVC 6中的CorrelationID在哪里

pac*_*c w 5 c# logging asp.net-core-mvc asp.net-core

如何使用MVC 6获取请求的correlationID?

我想在记录消息时使用它,以便我可以通过系统跟踪请求.

在以前的版本中,我会使用HttpRequestMessageExtensions.GetCorrelationId方法:https: //msdn.microsoft.com/en-us/library/system.net.http.httprequestmessageextensions.getcorrelationid%28v=vs.118%29.aspx

Kév*_*let 5

在最新版本中,HttpContext直接公开一个TraceIdentifier可以用作相关标识符的属性:https : //github.com/aspnet/HttpAbstractions/blob/dev/src/Microsoft.AspNetCore.Http.Abstractions/HttpContext.cs#L72

public void MvcAction() {
    var identifier = HttpContext.TraceIdentifier;
}
Run Code Online (Sandbox Code Playgroud)

在旧版本中,您可能必须使用该IHttpRequestIdentifierFeature功能来检索请求标识符:

public void MvcAction() {
    var feature = HttpContext.Features.Get<IHttpRequestIdentifierFeature>();
    var identifier = feature.TraceIdentifier;
}
Run Code Online (Sandbox Code Playgroud)