Почему поведение BotConnector отличается от эмулятора?

Я играю с недавно выпущенным Microsoft Bot Framework. Я сделал следующие шаги:

  1. Создан простой бот с использованием IDialog ( пример Echo Bot), протестирован с эмулятором, развернут в службе приложений Azure и зарегистрирован на dev.botframework.com. Все работало нормально

  2. Обновил бота для работы с Луисом, используя LuisDialog, добавил атрибуты [LuisModel] и [LuisIntent] (на основе примера Alarm Bot) и развернул его в облаке.

После этого у меня странное поведение:

Как локальное, так и облачное развертывание работают должным образом с использованием эмулятора, а часть Luis работает хорошо.

При запуске того же бота из тестового соединения BotConnector, он не связывает Luis, а вместо этого вводит MessageReceivedAsync.

Я проверил путь к боту, идентификатор приложения и ключи, заново развернул App Service и перерегистрировал бота, и у меня все еще остается такое же поведение.

Мой ReceiveMessageAsync выглядит следующим образом:

private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<Message> result)
{
  var message = await result;

  await context.PostAsync("You have just said: " + message.Text);
  context.Wait(MessageReceivedAsync);
}

Причина, по которой я его не удаляю, в том, что тестовое соединение перестает работать без него. Эмулятор, с другой стороны, работает хорошо.

Разве тестовое соединение в BotConnector и эмуляторе не указывает на одну и ту же конечную точку, которая, как ожидается, ВСЕГДА возвращает одинаковые результаты? Или я что-то упустил?

2 ответа

Решение

Не применимо больше. Более новая версия 1.1, к которой, кстати, были добавлены критические изменения, работает как шарм в той же кодовой базе.

Да, Bot Connector и эмулятор отправляют одинаковые сообщения.

То, вернет ли ваш код одно и то же значение, зависит от того, как вы работаете с сообщением, вызывающей среды (вызываемой из localhost через HTTP вместо удаленно через HTTPS) и среды размещения (обычно отладочные биты в IIS Express по сравнению с битами выпуска в IIS, для приложений C#).

Другие вопросы по тегам