Итак, я собираюсь сделать обоснованное предположение, что у вас возникла проблема с порядком регистрации обработчиков с помощью IApplicationBuilder
во время запуска.Если вы не в курсе, порядок отображения объектов в конструкторе приложений действительно имеет значение.
Поскольку у вас есть существующая кодовая база, я собираюсь предположить, что когда вы добавили бота, вы добавили вызов .UseBotFramework()
в конце.Так как UseBotFramework()
зарегистрирует вашего бота под /api/messages
по умолчанию, есть большая вероятность, что существующие маршруты MVC, которые вы уже отобразили, "проглатывают" запросы, предназначенные для перехода к боту.У вас есть два способа исправить это:
- Переместите
.UseBotFramework()
так, чтобы оно было перед любым другим отображением маршрута, чтобы у него были первые метки при обработке входящего запроса. - Измените маршрут, который будет прослушивать бот, чтобы он не конфликтовал с маршрутом вашего контроллера API.Это делается во время вызова
AddBot<YourBot>(…)
следующим образом:
services.AddBot<YourBot>(options =>
{
options.Paths.BasePath = "bots";
});
И вместо этого путь станет /bots/messages
.Вы также можете изменить /messages
, если хотите, через options.Paths.MessagesPath
.