在大约10分钟内未请求Bot后,Bot框架在生产环境中出现502个错误网关(Node.js)
当我使用Microsoft Bot Framework开发使用多个瀑布对话框的对话Bot时,如果在大约10分钟内没有请求Bot,我总是在生产环境中收到502个坏网关错误 但是,在本地环境中,使用Bot仿真器测试应用程序时不会发生错误 我一直在寻找有关此问题的解决方案,该错误似乎是由于bot无法在15秒内发回响应造成的 以下是我为解决这一问题所做的尝试:在大约10分钟内未请求Bot后,Bot框架在生产环境中出现502个错误网关(Node.js),node.js,firebase,botframework,Node.js,Firebase,Botframework,当我使用Microsoft Bot Framework开发使用多个瀑布对话框的对话Bot时,如果在大约10分钟内没有请求Bot,我总是在生产环境中收到502个坏网关错误 但是,在本地环境中,使用Bot仿真器测试应用程序时不会发生错误 我一直在寻找有关此问题的解决方案,该错误似乎是由于bot无法在15秒内发回响应造成的 以下是我为解决这一问题所做的尝试: 已为Azure云应用程序启用“始终打开”选项(无法解决此问题) 使用Cosmos DB将状态的内存存储更改为自定义存储(无法解决此问题)
- 已为Azure云应用程序启用“始终打开”选项(无法解决此问题)
- 使用Cosmos DB将状态的内存存储更改为自定义存储(无法解决此问题)
- 为某些长期运行的进程发送主动消息。但是,当502错误开始发生时,即使从Firebase Firestore获取一个文档也可能是导致错误的“长时间运行的过程”。由于我的应用程序需要不断检查Firebase文档状态,以查看特定对话阶段是否打开,并决定应应用哪个对话框,因此不太可能在此上下文中识别长期运行的流程李>
活动的任何相关解决方案。值为“14”的代码必须是string类型
[onTurnError]:错误:未建立连接
BotFrameworkAdapter.processActivity():500错误-错误:值为“14”的activity.code必须为字符串类型。(节点:5132)未处理的PromisejectionWarning:错误:错误:值为“14”的activity.code必须为string类型。在进程中的BotFrameworkAdapter.processActivity(D\home\site\wwwroot\node\u modules\botbuilder\lib\BotFrameworkAdapter.js:511:19)中单击回调(内部/process/next\u tick.js:68:7)。(节点:5132)未处理承诺拒绝警告:未处理承诺拒绝。此错误源于抛出不带catch块的异步函数内部,或者拒绝未处理的承诺
with.catch()。(拒绝id:9)
考虑到这种情况,该问题的适当解决方法是什么
- 我正在尝试编写一个云函数,以每隔5分钟主动向bot发送请求,使其保持活动状态,但我不确定它是否会工作,而且它似乎不是正确的解决方案
- 如果我需要为每个收到的消息发送主动消息(因为不可能识别长时间运行的流程),我如何向前推瀑布式对话框并用主动消息提示用户输入某些输入?因为主动消息示例没有提供一个实现来继续瀑布式对话框&提示用户进行某些输入(例如AttachmentPrompt、NumberPrompt等)
我不明白。看起来你已经知道哪里出了问题(firebase呼叫)。firebase电话就是不回吗?如果您的对话框一直挂起,直到调用返回,并且在15秒内没有返回,那么它将超时。@JJ_Wailes Firebase没有问题。我的意思是,从Firebase获取数据(基本上不需要时间)似乎是一个长时间运行的过程,而bot在大约10分钟后似乎不处于“活动”状态。问题是,bot似乎无法发送抓取请求。您能否在此repo上发布此错误(您的开启错误)@当然,我已经在GitHub上发布了这个问题。我不明白。看起来你已经知道哪里出了问题(firebase呼叫)。firebase电话就是不回吗?如果您的对话框一直挂起,直到调用返回,并且在15秒内没有返回,那么它将超时。@JJ_Wailes Firebase没有问题。我的意思是,从Firebase获取数据(基本上不需要时间)似乎是一个长时间运行的过程,而bot在大约10分钟后似乎不处于“活动”状态。问题是,bot似乎无法发送抓取请求。您能否在此repo上发布此错误(您的开启错误)@当然,我已经在GitHub上发布了这个问题。