2016-11-02 11 views
0

У меня есть бот, созданный с помощью C#/MS Bot Framework, который работает на Azure. Он работает нормально, но HTTP-журналы в Azure показывают большое количество неудачных HTTP-запросов, около 20% от общего числа.Ошибка 500 в Bot Framework, InvalidOperationException: асинхронный модуль или обработчик завершен при ожидании операции асинхронного ожидания

Когда я активировал удался трассировка запроса, это то, что я видел в журналах:

URL:/API/сообщения

было сгенерировано необработанное исключение при выполнении текущего запроса веба на . Информация о происхождении и расположение исключения могут быть идентифицированы с использованием стека исключений трассировки

[InvalidOperationException:. Асинхронный модуль или обработчик завершена в то время как асинхронная операция еще продолжается]

I не удалось извлечь из журналов более подробную информацию, включая трассировку стека (она пуста).

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

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

Я подозреваю, что я могу использовать context.Done(this), чтобы завершить диалог, но это, по-видимому, обычная практика использования этого.

Будут оценены любые указатели или идеи, которые часть кода может вызвать это, или как извлечь более подробную информацию об ошибке. Благодарю.

ответ

0

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

Я бы искал методы асинхронного вызова, но не ожидал.

Некоторые связанные показания:

 Смежные вопросы

  • Нет связанных вопросов^_^