【问题标题】:Error 500 in Bot Framework, InvalidOperationException: An asynchronous module or handler completed while async operation pendingBot Framework 中的错误 500,InvalidOperationException:异步模块或处理程序已完成,而异步操作挂起
【发布时间】:2016-11-02 03:31:59
【问题描述】:

我有一个使用 C#/MS Bot Framework 构建的机器人,它在 Azure 上运行。它工作正常,但 Azure 中的 HTTP 日志显示大量失败的 HTTP 请求,约占总数的 20%。

当我启用失败的请求跟踪时,这就是我在日志中看到的:

网址:/api/messages

在执行过程中产生了一个未处理的异常 当前的网络请求。有关原产地和位置的信息 可以使用异常堆栈跟踪来识别异常

[InvalidOperationException:异步模块或处理程序 在异步操作仍处于挂起状态时完成。]

我无法从日志中提取更多详细信息,包括堆栈跟踪(它是空的)。

机器人在模拟器中也能正常工作。通过 Facebook 与机器人交谈时会出现失败的请求,即使用户可以与机器人正常交互,尽管请求看似失败。

我无法弄清楚代码的哪一部分甚至可能导致此问题,而我的其他机器人似乎没有此问题。

我怀疑我可能正在使用context.Done(this) 来终止对话,但这似乎是使用它的正常做法。

任何代码的哪一部分可能导致此问题的指针或想法,或如何提取有关错误的更多详细信息,将不胜感激。谢谢。

【问题讨论】:

    标签: c# azure botframework botbuilder


    【解决方案1】:

    不看代码很难确切地知道发生了什么,但是这种异常在 async/await 世​​界中很常见。通常这意味着在您的模块/处理程序完成和异步方法完成之间存在竞争条件。

    我会寻找被调用但未被等待的异步方法。

    一些相关读物:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-08
      • 1970-01-01
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      相关资源
      最近更新 更多