Botframework 如何确保捕获所有异常

Botframework 如何确保捕获所有异常,botframework,Botframework,由于公司防火墙的原因,我无法调试我的bot,因此我只能在Azure中部署和测试 我一直收到默认的未处理异常消息,通常我不知道为什么没有经过大量的尝试和错误 如何确保捕获所有异常以便记录错误 例如,这样可以很好地显示选项列表,但在用户有机会选择和选择之前,会在没有跟踪的情况下下沉。我在调用函数和ResumeAfter中都有捕获,它们都没有被调用: PromptDialog.Choice<int>( context, OnSelectedPolicy, optio

由于公司防火墙的原因,我无法调试我的bot,因此我只能在Azure中部署和测试

我一直收到默认的未处理异常消息,通常我不知道为什么没有经过大量的尝试和错误

如何确保捕获所有异常以便记录错误

例如,这样可以很好地显示选项列表,但在用户有机会选择和选择之前,会在没有跟踪的情况下下沉。我在调用函数和ResumeAfter中都有捕获,它们都没有被调用:

PromptDialog.Choice<int>(
    context,
    OnSelectedPolicy,
    options,
    "Which policy do you want to claim under?",
    "Ooops, that is not a valid option, please try again",
    3,
    PromptStyle.Auto);
PromptDialog.Choice(
上下文
在选举政策上,
选项,
“您想根据哪项保险单索赔?”,
“哦,这不是一个有效的选项,请重试”,
3.
PromptStyle.Auto);

在启动代码中注册异常处理程序。我们使用log4net,因此在
应用程序\u Start
中有这样一行:

GlobalConfiguration.Configuration.Services.Add(typeof(IExceptionLogger), 
                                               new Log4netExceptionLogger());
使用支持类显示如何处理错误:

public class Log4netExceptionLogger : ExceptionLogger {
    private static readonly ILog log = LogManager.GetLogger("MSBot Unhandled Exception");

    public override void Log(ExceptionLoggerContext context) {
        log.Error(context.Exception);
    }
}

在启动代码中注册异常处理程序。我们使用log4net,因此在
应用程序\u Start
中有这样一行:

GlobalConfiguration.Configuration.Services.Add(typeof(IExceptionLogger), 
                                               new Log4netExceptionLogger());
使用支持类显示如何处理错误:

public class Log4netExceptionLogger : ExceptionLogger {
    private static readonly ILog log = LogManager.GetLogger("MSBot Unhandled Exception");

    public override void Log(ExceptionLoggerContext context) {
        log.Error(context.Exception);
    }
}