Как я могу получить трассировку стека исключения вместе с сообщением об ошибке по умолчанию в microsoft botframework sdk V4 с использованием c#

#c# #exception #botframework

#c# #исключение #botframework

Вопрос:

Я создал бота в microsoft botframework sdk v4 с использованием c #, и он работает хорошо, но когда я получаю какую-либо ошибку, она просто показывает «извините, похоже, что-то пошло не так». Я хочу получить трассировку стека исключения вместе с этим сообщением по умолчанию. Как я могу это получить.

заранее спасибо,

Ответ №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 в своем сообщении.

Если вы хотите запустить это в производство, то не делайте этого. Вместо этого перейдите к TelemetryClient, такому как Application Insights, и отслеживайте исключения там. Таким образом, вы можете опубликовать приятное и удобное для пользователя сообщение об ошибке (если таковое имеется), сохраняя при этом некоторую информацию журнала в серверной части для устранения проблемы.

Комментарии:

1. Спасибо за ответ, сейчас он работает, я использую его только для тестирования, а не для производства.