#c# #asp.net-core #botframework #publish
#c# #asp.net-core #botframework #опубликовать
Вопрос:
Когда я создаю и запускаю проект, все работает нормально.
Когда я публикую проект и запускаю его из каталога публикации, он не отвечает ни на одно сообщение.
В эмуляторе я получаю сообщение:
Не удается опубликовать действие. Несанкционированный. Прямая линия POST403.Последующая активность
dotnet myBot.dll //from within publish directory, bot runs, doesnt repond to any message
dotnet run //from project directory, everything works fine
Комментарии:
1. Как вы связываетесь с ботом в обоих случаях?
2. Я просто тестирую это с помощью эмулятора бота. Кроме того, в случае публикации, когда я открываю соединение с эмулятором, я вижу в выводе консоли, что веб-api получает сообщение, оно просто ведет себя так, как будто бот никогда не создается. В обоих случаях приложение запускается на одном и том же порту Kestrel по умолчанию, http 5000 и https 5001.
3. Я отредактировал сообщение с более подробной информацией. Когда я запускаю бота из каталога публикации, я получаю сообщение: Не удается опубликовать активность. Неавторизованный. POST403 directline.postActivity
4. Итак, проблема заключалась в том, что при запуске в рабочей среде вам нужно настроить ngrok, чтобы служба ботов могла взаимодействовать с вашим ботом.
5. Если это решение, добавьте его в качестве ответа. Это совершенно нормально. Возможно, также добавьте некоторую информацию о том, как вы пришли к этому решению.
Ответ №1:
Итак, проблема заключалась в том, что я привязывался к тестовой рабочей конфигурации через конечную точку localhost, и в моем файле .bot у меня было это:
{
"type": "endpoint",
"appId": "myId",
"appPassword": "myPass",
"endpoint": "https://my.azurewebsites.net/api/messages",
"name": "production",
"id": "4"
},
Конечной точкой производства является служба azure. Итак, вы либо тестируете локально на localhost, либо настраиваете свой сервис в Azure так, чтобы он указывал на ваш localhost (ссылка предоставлена ngrok — В этом случае вам нужно настроить ngrok так, чтобы ваш localhost был доступен извне).
https://blog.botframework.com/2017/10/19/debug-channel-locally-using-ngrok/