我已经使用C#在Microsoft botframework sdk v4中创建了一个bot,并且运行良好,但是当我遇到任何错误时,它只会显示“对不起,好像出现了问题”。我想获取该异常的堆栈跟踪以及该默认消息。我该怎么办。
预先感谢
答案 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并在那里跟踪异常。这样,您就可以发布一个友好且用户友好的错误消息(如果有的话),同时在后端仍然保留一些日志信息以解决问题。