C# 消息扩展响应时间

C# 消息扩展响应时间,c#,botframework,sharepoint-online,microsoft-teams,C#,Botframework,Sharepoint Online,Microsoft Teams,在一些RND和我的代码实验中,我发现如果我的消息扩展响应在15秒内没有出现,那么我的消息扩展结果框中就会出现错误。 我正在使用SharePoint online作为后端,它正在查询2000多个项目,以形成我的邮件扩展结果窗口的自适应卡。我正在使用caml query根据在邮件扩展搜索框中输入的关键字从SharePoint online列表中筛选结果,然后将数据绑定到自适应卡。 那么,有没有什么方法可以加快进程并在15秒内得到响应,或者在bot框架中可以将阈值提高15秒以上 我使用的是bot fr

在一些RND和我的代码实验中,我发现如果我的消息扩展响应在15秒内没有出现,那么我的消息扩展结果框中就会出现错误。 我正在使用SharePoint online作为后端,它正在查询2000多个项目,以形成我的邮件扩展结果窗口的自适应卡。我正在使用caml query根据在邮件扩展搜索框中输入的关键字从SharePoint online列表中筛选结果,然后将数据绑定到自适应卡。 那么,有没有什么方法可以加快进程并在15秒内得到响应,或者在bot框架中可以将阈值提高15秒以上
我使用的是bot framework v3,使用的是c#

我现在似乎找不到它,但我确实记得读过一些关于这方面有短时间限制的文章,这样MS就可以强制执行响应UI,而不会因为第三方(比如你的应用程序)而被称为“慢”

这里有一个替代设计建议:当使用消息扩展时,它可以调用任务模块,这就是您现在正在做的。然后在任务模块中,您可以返回自适应卡或嵌入式web视图。有关更多信息,请参见[此处](带有嵌入式web视图)。在您的情况下,代替自适应卡,考虑切换到嵌入的Web视图,然后在自定义网页上,您可以向用户显示一个漂亮的“加载”屏幕或动画,而将SharePoint中的数据加载到REST调用中的后端API。

希望能有所帮助。

直达频道(以及其他一些频道)的请求完成时间限制为15秒。您应该使用主动消息来解决时间限制问题。有关更多信息和示例,请参阅


意识到我应该补充一点澄清。bot需要启动一个新线程,以便bot能够返回其响应。你可以回复一条信息说“正在努力”或其他什么。然后,您的结果会出现在一条主动消息中

在控制台的“网络”选项卡中,其错误为“调用代理操作失败,状态代码为:BadGateway”。如果SharePoint列表未持续更新,请检查是否在应用程序级别缓存数据。您可能需要在某个时间段后使新记录失效并获取新记录。@wajeed,我已将代码划分为一些小功能,并发现从SharePoint获取数据并将其绑定到adaptive card不会花费太多时间。但我正在从AAD获取用户图像,在一个请求中,我正在尝试从AAD获取至少50个图像,因此这需要很多时间,对此有什么建议吗?试试这个:在收到消息扩展请求时,不要直接获取图像,相反,只需在构建卡时通过,并在收到实际提取请求时提取实际的配置文件图像。我有一个坚定的业务要求,即仅在自适应卡中显示数据,如果我必须在网页中显示数据,那么首先,我为什么要为bot框架和团队获取数据,相反,我只是简单地用搜索创建网页。我想我没有解释得太清楚,很抱歉。我绝对不是说“创建一个单独的web应用程序”或诸如此类的话。我的意思是:当您创建消息扩展时,它能够调用“任务模块”。在此上下文中,任务模块基本上是团队内部的一个弹出窗口。但是,对于任务模块中可以放入的内容,有两个选项:(a)自适应卡或(b)嵌入式web视图(这是您在某处托管的网页的iframe)。因此,简而言之,我建议你展示任务模块可以做什么的另一个选项。看看这里:然后看到一个关于“使用自适应卡”的部分,然后下面的部分是“使用嵌入式web视图”我更新了答案,希望这能让我更清楚地了解任务模块,并且已经在我的应用程序中实现了其他功能,但任务模块无法替代自适应卡。我使用这张卡是有特定原因的,所以它可以被发送到聊天窗口,频道中的每个人都可以看到它,并使用卡上的一些按钮。因此,任务模块在任何情况下都不能作为选项。详细信息: