Ошибка эмулятора Bot Framework: прямая публикация POST 500 - PullRequest
0 голосов
/ 04 января 2019

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

enter image description here Когда я запускаю свой бот локально, он работает, как и ожидалось, когда я устанавливаю новую конфигурациючтобы подключиться к «боту веб-приложения» в 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 и следовал этому сообщению ( Эмулятор бота получает POST 500 directline.postActivity ).Тем не менее, я все еще получаю ошибку.Ниже приведены подробности журнала в эмуляторе инспектора-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, как на рисунке ниже»?

1 Ответ

0 голосов
/ 11 марта 2019

Вы не можете использовать конечную точку обмена сообщениями 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 код статуса неавторизованного пользователя.

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

Надежда на помощь!

...