根据http://support.microsoft.com/kb/2661403的说法,最近推出的微软安全公告MS11-100的Windows更新已经将MaxHttpCollectionKeys的默认值设置为1000。这导致了我公司的一些SSRS 2008报告出现了一些问题。虽然很容易简单地使用一个更高的值来使报告工作,但我想更多地了解它是如何工作的。我知道这个特殊的设置是HTTP的东西,而不是严格意义上的SSRS,但是这个SSRS是我调查的背景。我的目标是推导出某种方法来计算MaxHTTPCollectionKeys的值应该是多少,以满足我的报告,显然是查看具有最多可能参数值的最坏情况报告。
所以我的主要问题是-关于SSRS报告,什么构成了一个被计数并与设置MaxHTTPCollectionKeys进行比较的项目?显然,报告中所有参数的值总数之间存在一定的相关性,但这究竟是如何工作的呢?
我制作了一些测试报告(使用VS2008),并在我本地的2008 R2报告服务器上运行它们,发现MaxHTTPCollectionKeys的值与运行时传递的参数值的总数不完全匹配。我的一个测试报告只包含一个整数类型的多值参数,我为其定义了一个允许值列表-in 1- 10。我在报告管理器web配置文件中设置了MaxHTTPCollectionKeys = 35的值。注意-我在执行测试之前重置了报表服务器),发现当我选择6个值(1 -6、2- 7 -6的任意组合)而不是7个值时,报表将运行。这表明在获取参数值之前,集合中包含29个项。此外,我设置了MaxHTTPCollectionKeys = 30,并且发现我只能为要运行的报告选择一个参数值。当我将MaxHTTPCollectionKeys设置为29时,我根本无法运行报告(多值参数不能为空)。
然后我更改了报告,发现通过添加第二个参数(基本上是第一个多值int类型的副本,列表中包含10个int),基数从29上升到30。也就是说,当我设置MaxHTTPCollectionKeys =35时,我只能在两个参数之间选择总共五个值(每个参数的项数的各种组合不会影响任何东西)。
我做了一个完全没有参数的第三个测试报告(包含的所有报告都是显示当前时间的文本框),发现当MaxHTTPCollectionKeys =27时,报告工作,而当它是26时,它不工作。
再次重申,我的目标是推导出某种方法来计算MaxHTTPCollectionKeys的值应该是多少,以满足我的报告,显然是着眼于具有最多可能参数值的最坏情况的报告。有人能提供一些计算这个的指导方针吗?
感谢所有人
发布于 2012-01-31 02:37:28
这位先生已经通过HTTP模块完成了我认为您想要的事情:
http://blogs.msdn.com/b/paulking/archive/2012/01/16/using-an-http-module-to-assist-in-adjusting-the-value-of-aspnet-maxhttpcollectionkeys-imposed-by-ms11-100.aspx
https://stackoverflow.com/questions/8995248
复制相似问题