gpt4 book ai didi

c# - Microsoft.Bot.Builder.dll ("Access Denied"中的 Microsoft.Rest.HttpOperationException)在测试 PromptDialog.Confirm 时

转载 作者:太空狗 更新时间:2023-10-29 23:37:18 24 4
gpt4 key购买 nike

我正在尝试使用虚假消息测试 IDialog 流程,因此:

        var toBot = new Message()
{
ConversationId = Guid.NewGuid().ToString(),
Text = "Test",
};

Func<IDialog<T>> MakeRoot = () => testDialog;
toBot.From = new ChannelAccount(Guid.NewGuid().ToString());
toBot.To = new ChannelAccount(Guid.NewGuid().ToString());

当它遇到 PromptDialog.Confirm 时,它会抛出“Microsoft.Bot.Builder.dll 中的 Microsoft.Rest.HttpOperationException(“拒绝访问”)”异常。

如果我不创造

        toBot.From = new ChannelAccount(Guid.NewGuid().ToString());

它为 ChannelId 抛出 System.NullReferenceException。

PromptDialog.Confirm 看起来像这样:

    PromptDialog.Confirm(context, AfterErrorConfirmationAsync, Strings.ConfirmError,
Strings.InvalidInput);

我该如何解决这个问题?

最佳答案

问题是这样引起的:

    await context.PostAsync(replyMessage);
PromptDialog.Confirm(context, AfterErrorConfirmationAsync, Strings.ConfirmError,
Strings.InvalidInput);

在向用户发布消息后立即出现确认对话框会导致异常和随后的测试失败。但是它在运行时并没有抛出这个异常。

我通过将回复消息与确认字符串组合如下解决了上述问题:

    PromptDialog.Confirm(context, AfterErrorProcessingAsync, replyMessage + "\n\n" + Strings.ConfirmError,
Strings.InvalidInput);

如果有人有更好的解决方法,请留下这个问题。

关于c# - Microsoft.Bot.Builder.dll ("Access Denied"中的 Microsoft.Rest.HttpOperationException)在测试 PromptDialog.Confirm 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37284109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com