Работа с совершенно новым проектом Bot Framework, сгенерированным из шаблона (и с обновленными зависимостями), поэтому MessagesController
и RootDialog
. Когда я отлаживаю-запускаю проект в VS, а затем отправляю текстовое сообщение из эмулятора, конечным результатом является печально известный , не удалось отправить повтор .
Ошибка не отображается в журнале эмулятора: все в порядке, Grok подключен (хотя обойден для localhost), разговор добавлен и т. Д. Я могу опубликовать это при необходимости.
Нет исключений в VS (все исключения CLR проверены). В окне вывода VS не отображается сообщение об ошибке: имеются только сообщения от загрузочных модулей IIS Express, а затем сообщение о выходе из потока.
Я решил пойти на отладку точки останова, и вот результат: получается, что по умолчанию MessagesController.Post
метод:
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity.Type == ActivityTypes.Message)
{
await Conversation.SendAsync(activity, () => new Dialogs.RootDialog());
}
else
{
HandleSystemMessage(activity);
}
var response = Request.CreateResponse(HttpStatusCode.OK);
return response;
}
выполнение достигает await Conversation.SendAsync(...
, но затем оно никогда не возвращается из этого вызова. var response = ...
не является хитом, а Dialogs.RootDialog
никогда не создается (я добавил фиктивный конструктор с точкой останова), поэтому похоже, что даже делегат makeRoot
не запускается. Я предполагаю, что в какой-то момент истекает 15-секундный тайм-аут, и выполнение полностью прекращается.
Я в недоумении по поводу дальнейшей отладки. Кто-нибудь тоже прошел через эту проблему? TA
Зависимости и окружающая среда:
- Microsoft.Bot.Builder и Microsoft.Bot.Connector 3.15.2
- Net Framework 4.6
- Bot Framework Emulator 3.5.36
- Visual Studio 2017
- Win 10 64bit
Edit:
Я попытался начать с нового проекта из шаблона, на этот раз НЕ , обновляя любую зависимость. Это означает, что Microsoft.Bot.Builder 3.8.0.0 и не Microsoft.Bot.Connector. На этот раз ответ бота показан правильно. Журналы эмулятора жалуются, что не используют последнюю версию SDK. Но, по крайней мере, это работает. Итак, это регрессия?
Пробовал с 3.12.2.4 и тоже работает