如何使用C#在Microsoft botframework sdk V4中获取异常的堆栈跟踪以及默认错误消息

时间:2019-03-25 11:06:41

标签: c# exception botframework

我已经使用C#在Microsoft botframework sdk v4中创建了一个bot,并且运行良好,但是当我遇到任何错误时,它只会显示“对不起,好像出现了问题”。我想获取该异常的堆栈跟踪以及该默认消息。我该怎么办。

预先感谢

1 个答案:

答案 0 :(得分:1)

我看不到为什么要显示整个堆栈跟踪作为机器人对普通用户的响应,但是如果仅用于测试,则可以简单地修改OnTurnError处理程序。 通常可以在您的Startup.cs类中找到它。

// Catches any errors that occur during a conversation turn and logs them.
options.OnTurnError = async (context, exception) =>
{
    logger.LogError($"Exception caught : {exception}");
    await context.SendActivityAsync("Sorry, it looks like something went wrong.");
};

从那里,您可以在邮件中使用exception.StackTrace

如果您打算将此产品投入生产,请不要这样做。而是使用Application Insights之类的TelemetryClient并在那里跟踪异常。这样,您就可以发布一个友好且用户友好的错误消息(如果有的话),同时在后端仍然保留一些日志信息以解决问题。