Я пытаюсь выяснить, что не так с моим ботом. Это бот, предназначенный для базовых навыков Кортаны. Бот построен на базе бот-фреймворка версии 3.8.0. Я запускаю его на экземпляре службы Azure Bot (функция Azure).
Локально все работает как положено. Я использую эмулятор фреймворка для ботов, чтобы все проверить; все здорово. Теперь я публикую бота в Azure и вызываю его с помощью Кортаны. Кортана отвечает, что проблема с ботом.
Когда я проверяю журнал диагностики в Azure, я вижу следующее:
2017-07-18T08:11:34.252 Exception while executing function: Functions.messages
2017-07-18T08:11:34.252 Invalid channel data.
2017-07-18T08:11:34.272 Executed 'Functions.messages' (Failed, Id=e5eae9f5-97e4-4a35-aa5f-5c7d58a63aed)
2017-07-18T08:11:34.272 Invalid channel data.
2017-07-18T08:11:34.272 Function had errors. See Azure WebJobs SDK dashboard for details. Instance ID is 'e5eae9f5-97e4-4a35-aa5f-5c7d58a63aed'
2017-07-18T08:11:34.272 Invalid channel data.
2017-07-18T08:11:34.315 {"id":"6f095c10-d9e8-4ad0-a6a8-caf052288f8b","requestId":"2f4c950c-2459-4467-8579-4f3b5bc45e6b","statusCode":500,"errorCode":0,"messsage":"An error has occurred. For more information, please check the logs for error ID 6f095c10-d9e8-4ad0-a6a8-caf052288f8b"}
2017-07-18T08:11:34.315 Invalid channel data.
2017-07-18T08:11:34.194 Function completed (Failure, Id=e5eae9f5-97e4-4a35-aa5f-5c7d58a63aed, Duration=4626ms)
2017-07-18T08:11:34.252 Exception while executing function: Functions.messages. Microsoft.Bot.Connector: Invalid channel data.
Итак, "неверные данные канала" кажутся здесь основной ошибкой, но это мало что говорит. Я включил все журналы на сервере и скачал + проверил их; там нет ничего более полезного.
Я также подключил к удаленному процессу отладчик. Я вижу, что мой метод диалога вызывается и завершается без каких-либо проблем. Значит, проблема не в моем коде, а где-то во фреймворке? Но я понятия не имею, куда идти дальше.
Кстати, я также пробовал обновиться до последней версии SDK (3.8.5), но похоже, что Microsoft.Bot.Builder.Azure зависит от версии 3.8.0, потому что он не запускается после обновления из-за ошибки загрузки сборки (пытается загрузить 3.8.0).