Исключение BoT в чате: исключение OnTurnAsync - операция вернула недопустимый код состояния «BadRequest» - PullRequest
0 голосов
/ 18 июня 2019

Я получаю эту ошибку только после того, как развернул своего бота в веб-приложении Azure и попытался выполнить тестирование в веб-чате Azure на портале. Но мой бот работает, как и ожидалось, от эмулятора ботов на моей локальной машине.

Я не уверен, связано ли это с назначенной мне лазурной ролью. Моя назначенная роль отображается как «Ограниченный участник». Я могу создать любой ресурс и развернуть моего чат-бота в Azure. Так что я не уверен, что это как-то связано с моей ролью «Ограниченный участник».

Вот строка кода (отмечена красным), где она выдает исключение: enter image description here

  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».

Ответы [ 2 ]

0 голосов
/ 21 июня 2019

Основной причиной этой ошибки было

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

0 голосов
/ 20 июня 2019

Обычно это происходит из-за того, что MicrosoftAppId / MicrosoftAppPassword настроен в вашей конфигурации службы приложений или в вашем коде (в зависимости от того, как вы его настроили).Пожалуйста, убедитесь, что они настроены там, а затем повторите попытку.

Я предполагаю, что это не имеет отношения к вашей роли.Кроме того, я не вижу роль "" в качестве стандарта.Я вижу Limited Administrator, но не a Limited Contributor:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...