【问题标题】:Request Entity Too Large: How to Fix this Error with Microsoft Bot Framework on Teams请求实体太大:如何在 Teams 上使用 Microsoft Bot Framework 修复此错误
【发布时间】:2021-06-10 14:08:23
【问题描述】:

我正在尝试使用机器人框架在 Teams 上以表格格式显示数据。

首先,我在this example 之后使用了自适应卡。它工作正常,但是当项目变得如此多时,不支持滚动条(垂直和水平)。

我后来编写了一个 HTML 表格作为字符串并将其传递给活动文本。这非常有效,但不适用于大型数据集。我收到错误:请求实体太大。

请问我该如何解决?

public static string ConvertToHTMLString(DataTable dt)
{
    StringBuilder sb = new StringBuilder();
    sb.Append("<table style='border-collapse: collapse;font-family: Arial, Helvetica, sans-serif; width: 100%;'>");
    sb.Append("<tr>");
    foreach (DataColumn column in dt.Columns)
    {
        sb.Append("<th style='border: 1px solid #ddd; padding: 8px;padding-top: 12px;padding-bottom: 12px;text-align: left;background-color: #4CAF50;color: white;'>" + column.ColumnName + "</th>");
    }
    sb.Append("</tr>");
    foreach (DataRow row in dt.Rows)
    {
        sb.Append("<tr>");
        foreach (DataColumn column in dt.Columns)
        {
           sb.Append("<td style='border: 1px solid #ddd; padding: 8px;'>" + row[column.ColumnName].ToString() + "</td>");
        }
       sb.Append("</tr>");
     }
        
     sb.Append("</table>");
     return sb.ToString();
}             

protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, ancellationToken cancellationToken)
{
     var activity = Activity.CreateMessageActivity();
     activity.TextFormat = "XML";
     activity.Text = ConvertToHTMLString();
     await  turnContext.SendActivityAsync(activity, cancellationToken);       

}

【问题讨论】:

标签: c# html-table botframework microsoft-teams adaptive-cards


【解决方案1】:

机器人框架/MS Teams 中存在最大消息大小。

您的消息(卡片等)不能超过 25kb 的单条消息。 这就是您收到此错误的原因。你的消息太大了。

唯一可用的解决方法是减小大小、删除不需要的东西或将其拆分为多条消息。

【讨论】:

    猜你喜欢
    • 2019-06-14
    • 2023-03-11
    • 1970-01-01
    • 2013-11-23
    • 2019-02-04
    • 1970-01-01
    • 2013-01-16
    • 2012-11-14
    • 1970-01-01
    相关资源
    最近更新 更多