StatusCodeResult не регистрируется в App Insights при 4xx - PullRequest
0 голосов
/ 02 августа 2020

В моем ASP. NET core 3.1 web api я использую метод ObjectResult StatusCode([ActionResultStatusCode] int statusCode, [ActionResultObjectValue] object value) из ControllerBase для возврата определенных типов ошибок с кодом состояния 422. В предыдущих версиях ASP. NET генерация исключения с информацией о коде состояния была стандартной, и регистратор улавливал ее, потому что это было фактическое исключение. Теперь у меня есть такой код

public async Task<IActionResult> RequestSomething(RequestObject request)
{
  if(request.id == 0)
  {
    return StatusCode(422, "ID cannot be blank.");
  }
}

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

Я не хочу внедрять логгер везде и добавлять строку журнала перед каждым из них. Как настроить Application Insights для сбора всех результатов кода состояния 422 при возврате таким образом?

1 Ответ

0 голосов
/ 03 августа 2020

Вы абсолютно правы. Вам не нужно вводить регистратор во все контроллеры / метод. Все, что вам нужно сделать:

  1. Установить пакет Nuget ( Microsoft.ApplicationInsights.AspNetCore )
  2. Добавить services.AddApplicationInsightsTelemetry (); в методе запуска ConfigureServices .
  3. Свяжите службу приложений и Application Insights (что, я думаю, вы уже сделали).

Ниже показано, как это выглядит в App Insights.

мой код в ActionMethod чем-то похож на ваш.

[HttpGet]
        public IActionResult Get()
        {
                return StatusCode(422, "ID cannot be blank or 1.");
        }

enter image description here

For others who are new to App Insights, You can learn how to integrate App insights with App Service at https://praveenkumarsreeram.com/2020/07/11/6-steps-to-integrate-application-insights-with-net-core-application-hosted-in-azure-app-service/

...