猿问

“抱歉,我的机器人代码有问题。” 在尝试调用新对话框时

我似乎无法在 BotFramework 的对话框堆栈中添加另一个对话框。我使用此处找到的c# 模板创建了一个小型机器人应用程序。


我只将 RootDialog 代码更改为:


using System;

using System.Threading.Tasks;

using Microsoft.Bot.Builder.Dialogs;

using Microsoft.Bot.Connector;


namespace TextBot.Dialogs

{

    [Serializable]

    public class RootDialog : IDialog<object>

    {

        public async Task StartAsync(IDialogContext context)

        {

            await context.PostAsync("Welcome! This is the root dialog.");

            context.Wait(MessageReceivedAsync);

        }


        private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<object> result)

        {

            var activity = await result as Activity;


            if (activity.Text == "other") context.Call<string>(new EchoDialog(), this.MessageReceivedAsync);


            context.Wait(MessageReceivedAsync);

        }

    }


    [Serializable]

    public class EchoDialog : IDialog<string>

    {

        public async Task StartAsync(IDialogContext context)

        {

            await context.PostAsync("Hi there, this is Another dialog!");

            context.Done(true);

        }

    }

}

当我使用 BotEmulator 尝试此代码时,对话如下所示:


我:喂!

机器人:欢迎!这是根对话框。

我:其他

机器人:抱歉,我的机器人代码有问题。


这是调试控制台中的输出:


iisexpress.exe 警告:0:服务 url localhost:51528 不受信任,无法将 JwtToken 发送给它。

抛出异常:Microsoft.Bot.Builder.dll 中的“Microsoft.Bot.Builder.Internals.Fibers.InvalidNeedException”

抛出异常:mscorlib.dll iisexpress.exe 中的“Microsoft.Bot.Builder.Internals.Fibers.InvalidNeedException”警告:0 : 服务 url localhost:51528 不受信任,无法向其发送 JwtToken。

抛出异常:mscorlib.dll 中的“Microsoft.Bot.Builder.Internals.Fibers.InvalidNeedException”线程 0x3c9c 已退出,代码为 0 (0x0)。


我不知道我做错了什么。有人可以告诉我如何解决这个问题吗?


MM们
浏览 139回答 1
1回答
随时随地看视频慕课网APP
我要回答