Microsoft Bot Emulator"抱歉,我的机器人代码出现问题",我该如何调试?

时间:2018-03-31 09:37:42

标签: botframework luis

我遇到了MS.Bot.Framework + Luis + Azure

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

我有活跃的Azure订阅,使用订阅密钥设置端点。

运行MS Bot仿真器时,我收到错误消息&#34;抱歉,我的机器人代码出现问题。&#34;在调试模式下使用断点,我已经找到了&#34;新的LUISDialog&#34;它没有被触发,似乎跳过了它。

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 个答案:

答案 0 :(得分:1)

您的初始代码行很奇怪:

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

如果你想使用LuisDialog,你不应该在这里Chain,而是如下所示:

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

答案 1 :(得分:0)

尽管特定的代码段是正确的,但我也遇到了同样的问题。 将我的LUIS应用发布到生产版本后,该问题已修复。模拟器上的错误也说-错误的请求

我认为这将来可能会对某人有所帮助。