MVC 6中的CorrelationID在哪里?

本文关键字:在哪里 CorrelationID 中的 MVC | 更新日期: 2023-09-27 18:18:41

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

我想在记录消息时使用它,这样我就可以通过系统跟踪请求。

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

MVC 6中的CorrelationID在哪里?

在最新版本中,HttpContext直接暴露了一个TraceIdentifier属性,您可以使用它作为关联标识符:https://github.com/aspnet/HttpAbstractions/blob/dev/src/Microsoft.AspNetCore.Http.Abstractions/HttpContext.cs#L72

public void MvcAction() {
    var identifier = HttpContext.TraceIdentifier;
}

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

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