You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bot Framework Composer消息发送后仍显示打字指示器问题求助

Bot Framework Composer打字指示器异常问题解决方案

方案1:原生运行时中间件改造(无部署兼容问题,优先推荐)

该方案修复你之前SDK方案未生效的问题,核心原因是你之前修改的Startup.cs已不适用于新版Composer导出的.NET运行时,且默认中间件优先级设置错误。

操作步骤

  • 关闭appsettings.json中原有的showTyping配置,设为false,避免默认中间件与自定义中间件冲突
  • 新建CustomShowTypingMiddleware.cs文件,代码如下:
using Microsoft.Bot.Builder;
using Microsoft.Bot.Schema;
using System.Threading;
using System.Threading.Tasks;

public class CustomShowTypingMiddleware : IMiddleware
{
    public async Task OnTurnAsync(ITurnContext turnContext, NextDelegate next, CancellationToken cancellationToken = default)
    {
        // 仅响应用户消息类活动时发送打字指示器
        if (turnContext.Activity.Type == ActivityTypes.Message)
        {
            var typingActivity = Activity.CreateTypingActivity();
            // 强制等待打字指示器发送完成,再执行后续业务逻辑,避免后显问题
            await turnContext.SendActivityAsync(typingActivity, cancellationToken);
        }
        await next(cancellationToken);
    }
}
  • 修改AdapterWithErrorHandler.cs,在构造函数最顶部添加自定义中间件,确保优先级最高:
// 其他引用保持不变
public AdapterWithErrorHandler(/* 原有构造函数参数保持不变 */) : base(/* 原有基类参数保持不变 */)
{
    // 第一行就添加自定义打字中间件,放在所有其他中间件前面
    Use(new CustomShowTypingMiddleware());
    
    // 原有其他中间件、错误处理逻辑保持不变
}
  • 修改Program.cs,确保适配器注册逻辑使用你修改后的AdapterWithErrorHandler,不要用默认适配器:
// 找到服务注册的代码段,替换为以下逻辑
builder.Services.AddSingleton<IBotFrameworkHttpAdapter, AdapterWithErrorHandler>();
  • 重新发布即可,该方案不会引入额外权限问题,Azure部署后不需要额外配置。

方案2:自定义组件部署502/500错误修复

如果要继续使用自定义组件方案,本地正常但部署报错的核心原因是Azure配置与组件权限逻辑冲突,按以下步骤修复:

  • 检查Azure机器人服务「配置」页的MicrosoftAppId、MicrosoftAppPassword值,与你运行时的appsettings.json对应值完全一致,无多余空格或特殊字符
  • 删除自定义组件中你自己添加的所有身份验证校验逻辑,组件的身份验证需完全继承Composer官方组件的基类实现,不要自行拦截请求校验Authorization头
  • 在Azure应用服务的「配置」-「应用程序设置」中,新增配置项COMPONENT_FEATURES_ENABLED,值设为true
  • 发布时确认自定义组件的dll文件已包含在发布包中,不要遗漏组件依赖文件

方案3:无代码可视化配置方案(零开发成本,100%兼容)

如果不想修改运行时代码,可以直接在Composer可视化界面配置:

  • 在所有需要发送回复的触发节点最前面,新增「发送响应」动作,活动类型选择typing
  • 在发送打字动作后添加100ms的延迟动作,再添加你原本要发送的消息内容
  • 可将该逻辑封装为通用模板,所有回复节点直接复用即可

内容的提问来源于stack exchange,提问作者owenpww

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:27:02