Ошибка эмулятора Bot Framework: прямая почта POST 500 postActivity

Я пытаюсь подключить эмулятор Microsoft Bot Emulator к своему удаленному боту в Azure.

введите описание изображения здесь Когда я запускаю своего бота локально, он работает, как ожидалось, однако, когда я устанавливаю новую конфигурацию для подключения к «боту веб-приложения» в Azure, я получаю сообщение об ошибке, как показано ниже.

[16:05:17]Error: The bot is remote, but the service URL is localhost. 
Without tunneling software you will not receive replies.
[16:05:17]Connecting to bots hosted remotely
[16:05:17]Edit ngrok settings
[16:05:17]->messagehi
[16:05:17] POST 500 directline.postActivity

Я пробовал разные параметры в настройке ngrok и следил за этим сообщением (Bot Эмулятор получает POST 500 directline.postActivity). Однако я все еще получаю сообщение об ошибке. Ниже приведены сведения о журнале в эмуляторе Inspector-json.

"{\r\n  \"message\": \"An error has occurred.\",\r\n  \"exceptionMessage\": 
\"An error occurred while sending the request.\",\r\n  \"exceptionType\": 
\"System.Net.Http.HttpRequestException\",\r\n  \"stackTrace\": \"   at 
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task <>c__DisplayClass11_0.<<SendAsync>b__1>d.MoveNext()\\r\\n--- End of stack 
trace from previous location where exception was thrown ---\\r\\n   at 
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task 
task)\\r\\n      

Ожидается:

  1. как подключиться к удаленному боту, устанавливающему конечную точку в эмуляторе фреймворка бота?
  2. где найти «** сведения о конфигурации службы Azure Bot, как на изображении ниже»?

person klam    schedule 03.01.2019    source источник


Ответы (1)


Вы не можете использовать предоставленную Azure конечную точку обмена сообщениями для своего бота («xxxxxx.azurewebsites.ner / api / messages») в эмуляторе. Эмулятор предназначен для тестирования вашего локального бота. Однако вы можете подключить своего локального бота через туннель ngrok к вашему боту, размещенному в Azure, для доступа к внешним службам и каналам. Это позволяет вам протестировать код перед публикацией бота в Azure.

Сначала используйте ngrok для создания туннеля (при необходимости вы можете изменить порт). Чтобы создать этот туннель, выполните эту команду cli:

ngrok http 3978 -host-header="localhost:3978"

Это создаст адрес пересылки (т.е. туннелирования), который будет выглядеть примерно так:

https://h8g56dq.ngrok.io

Скопируйте адрес «https».

Затем замените конечную точку обмена сообщениями в своем боте, размещенном в Azure, используя указанный выше адрес с добавленным к нему «api / messages». После ввода он должен выглядеть так:

https://h8g56dg.ngrok.io/api/messages

В эмуляторе установите адрес, указанный выше. Также введите свой AppId и AppPassword, иначе вы получите код статуса 401 Unauthorized.

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

Надеюсь на помощь!

person Steven Kanberg    schedule 11.03.2019