.NET 5 application insights не показывает мою трассировку стека исключений?

#c# #azure-application-insights

Вопрос:

У меня есть веб-приложение .NET 5, и я настроил application insights. Когда в моем приложении возникает ошибка, я вижу ее на портале azure, но я не вижу никакой трассировки стека

введите описание изображения здесь

Я установил оба пакета nuget: введите описание изображения здесь

В моем стартапе:

     services.AddApplicationInsightsTelemetry();
 

Я даже попытался настроить ведение журнала в своей программе.cs, как описано здесь

     Host.CreateDefaultBuilder(args)
            .ConfigureLogging(logging =>
            {
                logging.AddApplicationInsights();
                logging.AddFilter<ApplicationInsightsLoggerProvider>(string.Empty, LogLevel.Trace);
            })
 

Что я упускаю?

Комментарии:

1. Отображается ли это, когда вы следуете этому руководству ?

2. @mu88 При использовании новой телеметрии() я получаю устаревшее предупреждение. Мы не рекомендуем использовать конфигурацию телеметрии. Активен в .NET Core. Видишь github.com/microsoft/ApplicationInsights-dotnet/issues/1152 для получения более подробной информации

3. docs.microsoft.com/en-us/azure/azure-monitor/app/asp-net-core

Ответ №1:

Хорошо, я все еще немного возлюсь с этим, но, согласно документам здесь, «Все исключения, обрабатываемые приложением, по-прежнему должны отслеживаться вручную.»

Это означает, что если вы напишете свои собственные обработчики исключений, вам все равно придется самостоятельно отправлять исключение и трассировку стека в application insights.

Например

Либо создайте исходное исключение

 catch (Exception e)
{
  throw;
}
 

Или отправьте исключение самостоятельно, используя Ilogger и LogError:

 catch (Exception e)
{
    _logger.LogError(e, "message here");
    return BadRequest(e.ToString());
}
 

Комментарии:

1. Есть ли у вас промежуточное программное обеспечение для исключений? Он может отправлять исключения в Application Insights в качестве центрального фрагмента кода