Ошибка создания приложения в Insights при запуске ASP. NET Core 2.1. - PullRequest
0 голосов
/ 03 апреля 2020

Я использую Application Insights в моем ASP. NET Core 2.1 REST Backend, который отлично работает для отслеживания ошибок при нормальном выполнении. Однако, когда у меня возникают проблемы во время запуска приложения (например, отсутствуют конфигурации), процесс завершается сбоем, и исключение заканчивается в IIs, который отображает общую страницу ошибки c.

Я обнаружил, что могу управляйте этим поведением, устанавливая переменную среды ASPNETCORE_CAPTURESTARTUPERRORS , как описано здесь , чтобы получить подробную страницу ошибки.

Но я хочу, чтобы эта подробная ошибка отслеживалась в представлениях приложений и в конечном итоге контролировать настройки доступности приложения, если такая ошибка возникает.

Кто-нибудь знает, как этого добиться?

1 Ответ

1 голос
/ 14 апреля 2020

Обновление 0416: Добавление решения, указанного в операторе:

, путем помещения CreateWebHostBuilder(args).Build().Run(); в блок try/catch и отправки исключения напрямую с использованием TelemetryClient.


Обновление:

Для ASP. NET core 2.1 это возможно (проверено на моей стороне, обратите внимание: здесь не нужно использовать ILogger, он может автоматически собирать необработанные исключения в program.cs или startup.cs). Вы можете добавить следующий код в Program.cs:

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        .ConfigureLogging(
        builder =>
            {

            builder.AddApplicationInsights("ikey");    

            builder.AddFilter<Microsoft.Extensions.Logging.ApplicationInsights.ApplicationInsightsLoggerProvider>
                             (typeof(Program).FullName, LogLevel.Trace);    

            builder.AddFilter<Microsoft.Extensions.Logging.ApplicationInsights.ApplicationInsightsLoggerProvider>
                             (typeof(Startup).FullName, LogLevel.Trace);
            }
        );

Для более подробной информации, вы можете обратиться к этой статье .


Оригинальный ответ:

К сожалению, log errors during startup не поддерживается.

Вот официальное do c, и в нем говорится:

Существует ряд случаев, которые фильтры исключений не могут обработать. Например:

1. Исключения, создаваемые конструкторами контроллера.

2. Исключения, создаваемые обработчиками сообщений.

3. Исключения, создаваемые при маршрутизации.

4. Исключения, создаваемые при сериализации содержимого ответа.

5. Исключение, создаваемое при запуске приложения.

6. Исключение, создаваемое в фоновых задачах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...