如何确定SSRS 2008报告的MaxHttpCollectionKeys值?

时间:2012-01-24 22:32:12

标签: http ssrs-2008

根据http://support.microsoft.com/kb/2661403,推出Microsoft安全公告MS11-100的最新Windows更新已将默认值MaxHttpCollectionKeys设置为1000.这已导致我公司的一些SSRS 2008报告出现一些问题。虽然很容易简单地使用更高的值来使报告工作,但我想更多地了解它是如何工作的。我理解这个特定的设置是HTTP的东西,不是严格意义上的SSRS,但是这个SSRS是我调查的背景。我的目标是获得某种方式来计算MaxHTTPCollectionKeys应该满足我的报告的价值,显然可以查看具有最大可能参数值的最坏情况报告。

所以我的主要问题是 - 关于SSRS报告,什么构成了一个计算项目并与设置MaxHTTPCollectionKeys进行比较?显然,报告的所有参数的值总数存在一定的相关性,但这是如何工作的呢?

我已经制作了一些测试报告(使用VS2008)并在我的本地2008 R2报告服务器上运行它们,发现MaxHTTPCollectionKeys的值与运行时传递的参数值总数不完全匹配。我的一个测试报告只包含一个INTEGER类型的多值参数,我为其定义了一个允许值列表 - 整数1 - 10.我设置了MaxHTTPCollectionKeys = 35的值(在报告管理器Web配置文件中。注 - 我在执行我的测试之前重置报表服务器)并发现报表将在我选择六个值(1 - 6,2 - 7 - 六个任意组合)但不是7时运行。这表明集合中包含29个项目抓取参数值。此外,我设置MaxHTTPCollectionKeys = 30,发现我只能为报告选择一个值来运行报告。当我设置MaxHTTPCollectionKeys = 29时,我根本无法运行报告(多值参数不能为空)。

然后我更改了报告,发现通过添加第二个参数(基本上是第一个多值int类型的副本,列表中有10个整数),基数从29增加到30.也就是说,当我设置MaxHTTPCollectionKeys = 35我只能在我的两个参数之间选择总共五个值(每个参数的项目数量的各种组合不会影响任何东西)。

我做了一个没有参数的第三个测试报告(所有报告都包含显示当前时间的文本框),发现当MaxHTTPCollectionKeys = 27时,报告在26时起作用,它不起作用。

重申一下,我的目标是推导某种方式来计算MaxHTTPCollectionKeys应该满足我的报告的价值,显然要查看具有最大可能参数值的最坏情况报告。任何人都可以提供一些指导来计算这个吗?

感谢所有