2017-07-12 7 views

答えて

4

あなたはExceptionFilterを使用することができるという事実について正しいありがとうございます。

あなただけの次の操作を実行する必要があります。

例えば、アプリケーションの洞察で例外の追跡を強制的に(あるいは、あなたのケースで、特定の例外タイプを扱う)、あなたのExceptionFilterクラスを作成します。

using Microsoft.ApplicationInsights; 
using System.Net.Http; 
using System.Web.Http.Filters; 

namespace BotDemo.App_Start 
{ 
    public class ExceptionFilter : ExceptionFilterAttribute 
    { 
     public override void OnException(HttpActionExecutedContext ctx) 
     { 
      HandleError(ctx); 
     } 

     private static void HandleError(HttpActionExecutedContext ctx) 
     { 
      ctx.Response = new HttpResponseMessage(System.Net.HttpStatusCode.InternalServerError) 
      { 
       Content = new StringContent(ctx.Exception.Message) 
      }; 

      var client = new TelemetryClient(); 
      client.TrackException(ctx.Exception); 
     } 
    } 
} 

あなたApplication_Start()であなたの例外フィルタを定義することを忘れないでください:

public class WebApiApplication : System.Web.HttpApplication 
{ 
    protected void Application_Start() 
    { 
     GlobalConfiguration.Configuration.Filters.Add(new ExceptionFilter()); 
     ... 

それだけです。

実際、ボットフレームワークテンプレートはASP.Netを使用しているため、すべての通常の機能を備えています。

+0

その返信が役に立った場合は、お手数ではありがとうございます。ありがとう –