2016-10-24 8 views

答えて

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

これは確実に機能しますか?私にとってはまだ例外を表示していません。パイプラインで最初に置かなければならないのですか? –

関連する問題