Я использую Application Insights для консольного приложения (.NET Core 2.1).
Мне нужно собрать больше информации о зависимостях (запросах / ответах), чем ApplicationInsights.DependencyCollector
.
Итак, я попробовал подход, описанный в этом блоге . И это работает для запросов.
Но это не работает для ответов. Потому что в коде выше Activity.Current
это null
:
[DiagnosticName("System.Net.Http.HttpRequestOut.Stop")]
public virtual void OnHttpRequestOutStop(System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpResponseMessage response, TaskStatus requestTaskStatus)
{
Console.WriteLine(Activity.Current);
}
Находясь в аналогичном коде для HttpRequestOut.Start
, он имеет правильное значение:
[DiagnosticName("System.Net.Http.HttpRequestOut.Start")]
public virtual void OnHttpRequestOutStart(System.Net.Http.HttpRequestMessage request)
{
Console.WriteLine(Activity.Current);
}
Почему в System.Net.Http.HttpRequestOut.Stop
случае Activity.Current
равно null
?
Как я могу получить доступ к одной и той же активности в Start и Stop events?
UPDATE
Я нашел некоторую информацию о проблеме здесь .