2016-10-24 2 views
1

Где и как помещать исключения прокси в приложениях azure на глобальном уровне в проекте .net core? У меня установлено приложение, и я могу следить за телеметрией в лазурном режиме, но исключений не хватает для неудачных запросов..Net Core - Azure Application Insights, не отображающий исключения

ответ

0

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

using System; 
using System.Threading.Tasks; 
using Microsoft.ApplicationInsights; 
using Microsoft.AspNetCore.Builder; 
using Microsoft.AspNetCore.Http; 

namespace Middleware 
{ 
    public static class ApplicationBuilderExtensions 
    { 
     public static IApplicationBuilder UseHttpException(this IApplicationBuilder application) 
     { 
      return application.UseMiddleware<HttpExceptionMiddleware>(); 
     } 
    } 

    public class HttpExceptionMiddleware 
    { 
     private readonly RequestDelegate _next; 

     public HttpExceptionMiddleware(RequestDelegate next) 
     { 
      _next = next; 
     } 

     public async Task Invoke(HttpContext context) 
     { 
      try 
      { 
       await _next.Invoke(context); 
      } 
      catch (Exception ex) 
      { 
       var telemetryClient = new TelemetryClient(); 
       telemetryClient.TrackException(ex); 

       //handle response codes and other operations here 
      } 
     } 
    } 
} 

Затем, зарегистрировать промежуточное программное обеспечение в разделе Настройка метода стартапа:

app.UseHttpException();

+0

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

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