2015-10-21 8 views
3

Как получить идентификатор корреляции запроса с использованием MVC 6?Где находится CorrelationID в MVC 6

Я хочу использовать его, когда я регистрирую сообщение, чтобы отслеживать запрос через систему.

В предыдущих версиях я бы использовал метод HttpRequestMessageExtensions.GetCorrelationId: https://msdn.microsoft.com/en-us/library/system.net.http.httprequestmessageextensions.getcorrelationid%28v=vs.118%29.aspx

ответ

4

В новейших версиях 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; 
} 
+0

Второй вариант работал для меня. Благодаря! –

+0

Знаете ли вы, почему я не могу получить первый вариант работы в бета-версии? Когда я смотрю на определение HttpContext, отсутствует свойство TraceIdentifier. –

+1

Поскольку это свойство было добавлено недавно (6 дней назад, если быть точным: https://github.com/aspnet/HttpAbstractions/pull/440). Конечно, он будет частью RC1, но тем временем вы сможете найти его в ночных сборках. – Pinpoint

Смежные вопросы