【发布时间】:2012-01-24 22:32:12
【问题描述】:
根据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 个 int 的列表),基数从 29 上升到 30。也就是说,当我设置 MaxHTTPCollectionKeys = 35 我只能在我的两个参数之间选择总共五个值(每个参数的项目数量的各种组合没有任何影响)。
我做了一个完全没有参数的第三次测试报告(所有包含的报告都是显示当前时间的文本框),发现当 MaxHTTPCollectionKeys = 27 时报告工作,当它是 26 时它不起作用。
重申一下,我的目标是推导出某种方法来计算 MaxHTTPCollectionKeys 的值应该是什么,以满足我的报告,显然是查看具有最多可能参数值的最坏情况报告。任何人都可以提供一些指导来计算这个吗?
谢谢大家
【问题讨论】: