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

Teams自适应卡片(Bot Framework)渲染特定SQL内容时出现渲染错误

Teams自适应卡片渲染报错:Error encountered while rendering this message 问题分析与解决

该问题已被确认为官方Bug,目前处于跟踪处理状态。

问题现象

使用Bot Framework渲染自适应卡片时,Teams会弹出“Error encountered while rendering this message”错误,无额外错误详情,仅在渲染包含特定SQL查询的卡片时触发。

触发场景示例

触发错误的SQL查询:

"SELECT COUNT(DISTINCT VisitorId) AS UniqueVisitors FROM sitedata WHERE eventdate>='2023-08-01' AND eventdate<'2023-08-08' AND Site =='foo.bar.com' AND Url RLIKE '^http?s://foo.bar.com/([^/]*)/answers/?'"

经测试,末尾带有 AND的SQL会直接触发渲染失败:

"SELECT COUNT(DISTINCT VisitorId) AS UniqueVisitors FROM sitedata WHERE eventdate>='2023-08-01' AND"

移除末尾的 AND后,卡片可正常渲染:

"SELECT COUNT(DISTINCT VisitorId) AS UniqueVisitors FROM sitedata WHERE eventdate>='2023-08-01'"

现有实现代码

C#渲染逻辑

var cardContent = new AdaptiveCardTemplate(cardTemplate).Expand(
            new
            {
                Query = sql
            }
        );

var replyActivity = MessageFactory.Attachment
(
    new Attachment
    {
        ContentType = "application/vnd.microsoft.card.adaptive",
        Content = JsonConvert.DeserializeObject(cardContent),
    }
);

await turnContext.SendActivityAsync(replyActivity);

自适应卡片JSON片段

{
      "type": "TextBlock",
      "text": "${query}",
      "wrap": true,
      "fontType": "Monospace",
      "color": "Dark",
      "horizontalAlignment": "Left",
      "separator": true
}

临时解决办法

通过WebUtility.HtmlEncode(sql)对SQL内容进行HTML编码后再传入模板,可规避渲染错误。

问题根源

Teams的自适应卡片渲染引擎默认会尝试解析TextBlock文本中的富文本语法(如Markdown),当SQL文本中包含特定字符组合(如末尾的 AND、正则表达式符号、单引号等)时,会触发渲染器的语法解析错误,导致卡片无法正常显示。

正确解决方案

  1. 修改自适应卡片配置:在TextBlock节点中添加"escape": true属性,强制渲染器对文本进行转义,避免解析富文本语法:
{
      "type": "TextBlock",
      "text": "${query}",
      "wrap": true,
      "fontType": "Monospace",
      "color": "Dark",
      "horizontalAlignment": "Left",
      "separator": true,
      "escape": true
}
  1. 等待官方修复:该问题已被官方标记为Bug,后续可关注官方修复进度,修复后可移除临时转义逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 18:05:29