由于企业防火墙,我无法调试我的僵尸程序,所以我只能在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);
答案 0 :(得分:0)
在启动代码中注册异常处理程序。我们使用log4net,因此我们在Application_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);
}
}