C# 尝试通过api调用获取结果时,Bot显示无法发送

C# 尝试通过api调用获取结果时,Bot显示无法发送,c#,.net,botframework,C#,.net,Botframework,我正在构建一个BOT应用程序,BOT显示的数据基于对CRM进行API调用后获取的数据。API调用需要时间,BOT显示响应,但由于API调用需要很长时间,BOT显示错误无法发送,但在获取数据后,它工作正常。如何克服此问题。我的代码如下这个 private async Task GetData(IDialogContext context, IAwaitable<string> result) { string prescriber = awai

我正在构建一个BOT应用程序,BOT显示的数据基于对CRM进行API调用后获取的数据。API调用需要时间,BOT显示响应,但由于API调用需要很长时间,BOT显示错误无法发送,但在获取数据后,它工作正常。如何克服此问题。我的代码如下这个

 private async Task GetData(IDialogContext context, IAwaitable<string> result)
        {
            string prescriber = await result;
            CRMInteraction crmConnect = new CRMInteraction();
            var prescriberdetail = await crmConnect.searchData(prescriber);

            this.NormalFlag = true;
            await context.PostAsync(prescriberdetail);
            context.Done("You are successfully registered.");

        }
API调用花费了很长时间,BOT显示错误无法发送,但在获取数据后,它工作正常

如果我向API服务发出一个需要很长时间才能返回响应的请求,我可以在我这方面重现同样的问题。在这个github问题中,我们可以知道WebChat/DirectLineJS有20秒的超时,这可能是这个问题的原因

要解决此问题,您可以尝试:

1如果可能,优化API服务以缩短响应时间

2更改代码逻辑:在后台任务/作业中执行提取数据操作,并在提取数据完成/用户成功注册时发送主动消息通知用户

注意:以下文章可以帮助您了解主动消息,您可以查看它