C# 尝试通过api调用获取结果时,Bot显示无法发送
我正在构建一个BOT应用程序,BOT显示的数据基于对CRM进行API调用后获取的数据。API调用需要时间,BOT显示响应,但由于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
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更改代码逻辑:在后台任务/作业中执行提取数据操作,并在提取数据完成/用户成功注册时发送主动消息通知用户
注意:以下文章可以帮助您了解主动消息,您可以查看它