Ssrs 2008 SSRS报告内容空白

Ssrs 2008 SSRS报告内容空白,ssrs-2008,reporting-services,Ssrs 2008,Reporting Services,在Sql Server Reporting Services(SSRS)2008 R2中运行报表时遇到问题 在设置站点、创建一些用户并上载一些报告之后,我选择一个要运行的报告,输入参数,然后等待报告呈现……但什么也没有发生。我看到“加载”动画的时间很短(无论报告如何,都会在1到10秒之间变化),但很快就消失了,除了页面顶部的参数外,什么都没有留下。根本不呈现任何报告内容 无论大小、参数数量等如何,我部署到SSRS实例的每个报告都会出现这种情况。大多数报告都有大约八个类似类型的参数,并且它们的布局

在Sql Server Reporting Services(SSRS)2008 R2中运行报表时遇到问题

在设置站点、创建一些用户并上载一些报告之后,我选择一个要运行的报告,输入参数,然后等待报告呈现……但什么也没有发生。我看到“加载”动画的时间很短(无论报告如何,都会在1到10秒之间变化),但很快就消失了,除了页面顶部的参数外,什么都没有留下。根本不呈现任何报告内容

无论大小、参数数量等如何,我部署到SSRS实例的每个报告都会出现这种情况。大多数报告都有大约八个类似类型的参数,并且它们的布局都是相对表格格式的:有几个“部分”,每个“部分”包含一个可能有分组和/或重复行的表。每个表平均包含六个字段。支持报表数据集的查询并不是特别重:在大多数情况下,我可以在半分钟内针对SQL运行它们

我已经检查并实施了以下问题中的解决方案,但两个问题都没有解决。

(与Safari/Chrome相关)

(与以管理员身份运行浏览器相关)

我考虑过的其他选项包括直接从计算机(而不是通过远程桌面)运行报告,以及从网络上的其他计算机(而不是承载报告的服务器)运行报告。这两种选择都不会带来持续的成功

但是,我已经确定,这个问题与传递给报表的参数数量直接相关。例如,我的大多数报告都有六个或七个以上的多选参数;它们中的每一个都是在运行时从数据库中填充的。如果用户执行“全选”或在参数选择中选择大量选项,则会出现上述问题。但是,如果用户的参数是特定的,并且只选择了少数参数,则报告将正确呈现

使这种情况更加复杂的是,它患有“在我的机器上工作”综合症。它发生在某些环境中,但在其他环境中不发生

如前所述,我可以通过限制所选参数值的数量来运行报告;这适用于任何环境。然而,我很好奇为什么会发生这种情况(可能是内部SSRS限制?),以及我能做些什么来持续避免这种情况

参数没有内部约束

第一个建议: 如果表返回“无值”,则通过显示标签轻松调试


我用SQL查询中参数的正确查询语法解决了同样的问题:

...
WHERE t.FieldName = ISNULL (@parameter, t.FieldName)
AND t.FieldName2 = ISNULL (@parameter2, t.FieldName2)
...

我遇到了同样的问题,下拉多选参数有一长串可能的值(>100)。检查您的情况并调查哪个参数会破坏报告。

我也有同样的问题,根据Alex Zakharov的建议,我找到了一个默认情况下几乎有700行的参数。取消选择几行立即解决了我的问题,但这对于生产版本来说并不令人满意

查找lrb建议的日志文件(
\Program files\Microsoft SQL Server\MSRS10\U 50.MSSQLSERVER\Reporting Services\LogFiles\
)时,我发现以下错误消息:

ERROR: HTTP status code --> 500
-------Details--------
System.Web.HttpException: The URL-encoded form data is not valid. ---> 
System.InvalidOperationException: Operation is not valid due to the current state of the object.
at System.Web.HttpValueCollection.ThrowIfMaxHttpCollectionKeysExceeded()
解决方案 这让我找到并更新web.configs,添加下面的代码行,然后重新启动服务


我必须在两个地方进行更新,因为SSRS为报表管理器和报表服务器提供了单独的网站:
\Program Files\Microsoft SQL Server\MSRS10\u 50.MSSQLSERVER\Reporting Services\ReportServer\web.config


\Program Files\Microsoft SQL Server\MSRS10\u 50.MSSQLSERVER\Reporting Services\ReportManager\web.config
建议

我只是想分享我对这个问题的解决方案。经过这么多的努力和尝试,我的问题更多的是在前端,有一段代码我丢失了,返回空白页,但服务器报告工作良好

使用Angular从web API返回
HttpResponseMessage
,最初我的调用是这样的:

$http.get(url + 'Report/getUsersReport?CustomerId=' + searchCriteria.customerId + '&fromDate=' + searchCriteria.fromDate + '&toDate=' + searchCriteria.toDate).then(getContractsForBackOfficeReportComplete, function (err, status) {defered.reject(err);});
在添加这行代码之后{responseType:'arraybuffer'}):


您是否可以添加一些详细信息,例如运行所需的时间和它提取的数据字段数?尝试使用类似Fiddler的工具来检查您的流量,看看发生了什么。检查iis/服务器日志也可能有帮助。@StevenW-更新了有关报告大小和运行时的详细信息,谢谢您的评论@Jeroen-HTTP请求日志不会产生任何相关结果;奇怪的是,页面的HTML源代码显示了包含我希望在报告中看到的数据的元素。这让我相信这个问题与我文章中提到的一个问题有关,但解决方案并不一致。@jtlovetteiii-Reporting services有一个超时,导致加载时间过长后它变为空白。如果将报告设置为缓存,则如果重新运行报告,它将立即显示。检查报告和服务器上的超时。您有什么问题?“这个问题”是什么意思?
$http.get(url + 'Report/getUsersReport?CustomerId=' + searchCriteria.customerId + '&fromDate=' + earchCriteria.fromDate + '&toDate=' + searchCriteria.toDate, { responseType: 'arraybuffer' })(getUsersReportBackOffice, function (err, status) {
defered.reject(err);});