SSRS 报表服务器是否有它可以处理的最大列数?

Does the SSRS Report Server have a maximum number of columns it can cope with?

我有一份包含 21 table 的 SSRS 报告。所有都占据相同的坐标,可见性 属性 设置为 table 仅当在用户交互参数中选择其名称时才显示。

有人要求我向各种 table 添加一些列。完成对请求列表中前两个 table 的修改后,我现在无法将报告上传到报告服务器,我得到了旧的 Maximum request length exceeded 错误;

System.Web.Services.Protocols.SoapException: There was an exception running the extensions specified in the config file. ---> System.Web.HttpException: Maximum request length exceeded.   at System.Web.HttpRequest.GetEntireRawContent()   at System.Web.HttpRequest.get_InputStream()   at System.Web.Services.Protocols.SoapServerProtocol.Initialize()   --- End of inner exception stack trace ---   at System.Web.Services.Protocols.SoapServerProtocol.Initialize()   at System.Web.Services.Protocols.ServerProtocol.SetContext(Type type, HttpContext context, HttpRequest request, HttpResponse response)   at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)

奇怪的是 rdl 文件的大小在过去的几次更改中几乎没有增加,增加了几 KB。

这是提示我问题的部分;如果我将总列数减少 3,从 205 减少到 202,它允许我上传报告。如果我删除整个 table 当然也是一样。

如果有帮助,这是我要求渲染引擎处理的内容的大致分类;

是否可以更改 web.config 文件中的设置来解决此问题?或者其他地方的设置?

否则,我可以从我自己的 table 中看到其中一些具有相同的结构,我可以使用所有参数将其中的一大块合并为一个 table,它只是这将需要大量的重新开发时间,所以我希望首先进行基于设置的修复!

在安装了SSRS的服务器上找到web.config文件,一般在C:\Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\ReportServer 或类似的(取决于版本)。

备份 web.config 文件。

编辑 web.config 文件,搜索 "HttpRuntime"。应该已经存在执行超时和请求验证模式。添加一个名为 "maxRequestLength" 的新元素并将其设置为以字节为单位的值。我认为默认情况下最大长度为 4MB,因此要将其加倍,您可以将其设置为 8388608。

该行现在看起来像这样:

<HttpRuntime executionTimeout="9000" maxRequestLength="8388608" requestValidationMode="2.0" />

最后重启SSRS服务或者重启服务器。