繁体   English   中英

Chat BoT异常:OnTurnAsync异常 - 操作返回了无效的状态代码'BadRequest'

[英]Chat BoT Exception: OnTurnAsync exception— Operation returned an invalid status code 'BadRequest'

我将我的机器人部署到azure web应用程序并尝试在天蓝色门户网站聊天中进行测试后,才会收到此错误。 但我的机器人正在我本地机器上的bot模拟器中按预期工作。

我不确定这是否归因于分配给我的天蓝色角色。我分配的角色显示为“有限贡献者”。 我能够创建任何资源并将我的聊天机器人部署到azure.So不确定这是否与我的“有限贡献者”角色有关。

以下是抛出异常的代码行(标记为红色): 在此输入图像描述

  Exception OnTurnAsync  exception inner ex.Message:
 Operation returned an invalid status code 'BadRequest'  ex:
 Microsoft.Bot.Schema.ErrorResponseException: Operation returned an invalid status code 'BadRequest'
   at Microsoft.Bot.Connector.Conversations.ReplyToActivityWithHttpMessagesAsync(String conversationId, String activityId, Activity activity, Dictionary`2 customHeaders, CancellationToken cancellationToken)
   at Microsoft.Bot.Connector.ConversationsExtensions.ReplyToActivityAsync(IConversations operations, String conversationId, String activityId, Activity activity, CancellationToken cancellationToken)
   at Microsoft.Bot.Builder.BotFrameworkAdapter.SendActivitiesAsync(ITurnContext turnContext, Activity[] activities, CancellationToken cancellationToken)
   at Microsoft.Bot.Builder.TurnContext.<>c__DisplayClass22_0.<<SendActivitiesAsync>g__SendActivitiesThroughAdapter|1>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.Bot.Builder.TurnContext.SendActivityAsync(IActivity activity, CancellationToken cancellationToken)
   at AbcChatBot.Bots.AbcsBot.OnMessageActivityAsync(ITurnContext`1 turnContext, CancellationToken cancellationToken)

任何建议,以解决或确定我为什么得到'BadRequest'将不胜感激。

这通常是因为在App Service配置中或代码中配置了MicrosoftAppId / MicrosoftAppPassword (取决于您如何配置它)。 请确保在那里配置它们然后再试一次。

我的猜测是,它与你的角色没有关系。 另外,我认为这个角色不是标准的。 我确实看到Limited Administrator不是 Limited Contributor

https://docs.microsoft.com/en-us/azure/active-directory/users-groups-roles/directory-assign-admin-roles

这个错误的根本原因是

protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
            {
    var reply = new Activity(); //this line caused the error
    ……..

    }

所以我改变了我的代码

var reply = new Activity();

var reply = turnContext.Activity.AsMessageActivity();

而错误消失了。

我仍然不知道为什么异常是从onTurnAsync抛出而实际问题是OnMessageActivityAsync

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM