Microsoft Bot Emulator "Извините, у моего бота-кода проблема", как мне отладить это?

У меня проблемы с моим MS.Bot.Framework + Luis + Azure

 await Conversation.SendAsync(activity, () => { return Chain.From(() => 
 new LUISDialog() as IDialog<object>); });

У меня активная подписка Azure, настроена конечная точка с ключами подписки.

При запуске эмулятора MS Bot я получаю сообщение об ошибке "Извините, у моего бота код проблемы". Используя точку останова в режиме отладки, я понял, что "новый LUISDialog" не запускается, кажется, он пропускается.

using System;
using System.Threading.Tasks;
using Microsoft.Bot.Builder.Dialogs;
using Microsoft.Bot.Builder.Luis;
using Microsoft.Bot.Builder.Luis.Models;
using System.Threading;
using George;
using Microsoft.Bot.Connector;

namespace Geoge.Dialog
{
    [LuisModel("*****", "*****")]
    [Serializable]
    public class LUISDialog : LuisDialog<object>
    {

        [LuisIntent("Greeting")]
        public async Task GreetingIntent(IDialogContext context, 
            IAwaitable<IMessageActivity> activity, LuisResult result)
        {
            string message = $"Hello there";
            await context.PostAsync(message);
            context.Wait(this.MessageReceived);
        }

Кто-нибудь может мне с этим помочь? Я потратил много времени, пытаясь отладить, и думаю, что мне не хватает чего-то простого.

2 ответа

Решение

Что странно, так это ваша начальная строка кода:

await Conversation.SendAsync(activity, () => { return Chain.From(() => new LUISDialog() as IDialog<object>); });

Если вы хотите использовать свой LuisDialogВы не должны иметь это Chain здесь, а что-то вроде следующего:

await Conversation.SendAsync(activity, () => new LUISDialog());

Я столкнулся с той же проблемой, хотя фрагмент кода был правильным. Это было исправлено после того, как я опубликовал свое приложение LUIS в Production. Также ошибка на эмуляторе говорит - Bad Request

Я думал, что это может помочь кому-то в будущем.

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