Bot框架对话框中的错误处理

时间:2017-07-12 23:16:31

标签: c# botframework

如何捕获对话框中的所有异常?是否有类似ASP.NET异常过滤器的东西? 我想根据异常类型向用户发送不同的消息。

谢谢

1 个答案:

答案 0 :(得分:5)

您可以使用ExceptionFilter

这是正确的

您只需执行以下操作:

创建您的ExceptionFilter 类,例如强制跟踪Application Insights中的异常(或者在您的情况下处理特定的异常类型):

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());
         ...

就是这样。

实际上Bot Framework模板使用的是ASP.Net,所以你拥有所有正常的功能。

相关问题