Я новичок в C# и Bot Framework (V3), и меня попросили начать тестирование существующего бота в проекте, к которому я присоединился. Сам бот отлично работает на эмуляторе бота и при размещении в скайпе, но веб-чат на азуре почему-то не работает. Поскольку веб-чат использует прямую линию, это как бы приостанавливает выполнение тестов на данный момент. Я потратил много времени на изучение страницы V3 Github и здесь, на SO, но не смог найти решения.
Разговор, кажется, инициирует OK для начала, поскольку бот отправляет пользователю сообщение, но все ответы пользователя не отправляются, и бот отвечает сообщением об ошибке «Извините, у моего кода бота возникла проблема». Видеть -
Azure перечисляет это как ошибку 500 — внутренняя ошибка сервера. видеть
Сообщения об ошибках в Azure
Затем я просмотрел сообщения на вкладке Chrome Dev Tools и получил ту же ошибку, а также ошибку 502 и, совсем недавно (или я никогда не замечал этого раньше), также ошибку CORS. Видеть
Консоль Chrome Dev Tools
После этого я использовал Application Insights в Azure, и для каждого экземпляра, когда я пытался использовать веб-чат, было три элемента;
- CustomEvent (StatusCode: 200), предположительно для сообщения, которое бот отправляет в начале разговора.
- Исключение с идентификатором задачи "System.Exception at Microsoft.Bot.ChannelConnector.BotAPI+d__31.MoveNext"
- Другое пользовательское событие (StatusCode: 500)
Поскольку я не очень хорошо знаком со всей настройкой между C # и Bot Framework, я не совсем уверен, в чем проблема. Вот скриншот того, как выглядит сообщение об исключении:
Сообщения с одним идентификатором операции
Сведения об исключении (1)
Сведения об исключении (2)
Сведения об исключении (3)
Сведения об исключении (4)
У меня были некоторые мысли по поводу этих сообщений:
- «Внешняя сборка» описывается как «Microsoft.Bot.ChannelConnector, версия = 3.2.2.5, культура = нейтральная, PublicKeyToken = null» — означает ли отсутствие PublicKeyToken, что пользователю не назначается маркер из-за ошибка? Или это должно происходить сначала, а ошибка возникает из-за того, что у пользователя нет токена?
- Трассировка стека указывает на строку в одном из диалоговых файлов, но, глядя на код, я не могу понять, в чем проблема? На самом деле я удалил помеченный раздел, но он просто изменил строку в коде, где была проблема, на предыдущий раздел, поэтому я не совсем уверен, что с этим файлом вообще есть проблема?
Если у кого-то есть какие-либо мысли по этому поводу и в чем может быть причина проблемы, я был бы очень признателен.
Кроме того, вот две вещи, которые я пытался сделать, чтобы исправить это, но это не имело никакого значения;
- Убедитесь, что при публикации профиля в Azure установлен флажок «Удалить все».
- Убедитесь, что все пакеты обновлены (включая установку пакета bot.connector.directline, которого по какой-то причине еще не было)