簡體   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