POST 到 Bot 在 15 秒后超时

POST to Bot timed out after 15s

有时我的机器人会收到超时错误。获取第一个响应本身的超时。

是否有增加 15 秒时间的选项?

此外,是否有任何选项可以跳过此超时问题?

异常类型:Microsoft.Bot.Schema.BotTimeoutException
失败的方法:Microsoft.Bot.ChannelConnector.BotAPI+d__31.MoveNext

它是使用 C# 和 directlinechannel 的机器人。

如果您需要任何其他信息,请告诉我

您需要使用 Periodic refresh token

来处理这个问题
 var credentials = new MicrosoftAppCredentials(appID, appPassword);
        Task.Factory.StartNew(async () => 
        {
            while (!_getTokenAsyncCancellation.IsCancellationRequested)
            {
                try{
                    var token = await credentials.GetTokenAsync().ConfigureAwait(false);
                }
                catch(MicrosoftAppCredentials.OAuthException ex)
                {
                    Trace.TraceError(ex.message);
                }
                await Task.Delay(TimeSpan.FromMinutes(30), _getTokenAsyncCancellation.Token).ConfigureAwait(false);
            }
        }).ConfigureAwait(false);

这是Bot Framework的问题,直连15s会超时,目前没有办法抑制,查看下贴

https://github.com/microsoft/botframework-sdk/issues/3220

这种类型的强制执行可以使机器人更加活跃并强制制造更快的机器人。

Google 的对话流程在 5 秒时超时,Alexa 技能在 8 秒时超时,因此 15 秒对于 Bot Framework 来说是慷慨的:P