如何使用IIS 7.5更改表单中可发布的字段数量?

如何使用IIS 7.5更改表单中可发布的字段数量?,iis,iis-7,coldfusion,iis-7.5,http-post,Iis,Iis 7,Coldfusion,Iis 7.5,Http Post,我们在web应用程序的管理部分遇到了一些表单问题。有一些表单包含大量字段(从一个输入字段到数百个输入字段) 我们发现,随着这些表单的增长,在发布表单时,服务器会抛出500个错误 运行测试后,我发现服务器可以处理包含100个字段的表单;一旦使用了101个或更多字段,我们就会得到错误 我们运行Coldfusion,并确定Coldfusion没有抛出此错误。我们从未在Coldfusion中看到此错误,因此我们假设IIS在向Coldfusion服务器发送请求之前就抛出了错误 我假设在IIS7.5中有一些

我们在web应用程序的管理部分遇到了一些表单问题。有一些表单包含大量字段(从一个输入字段到数百个输入字段)

我们发现,随着这些表单的增长,在发布表单时,服务器会抛出500个错误

运行测试后,我发现服务器可以处理包含100个字段的表单;一旦使用了101个或更多字段,我们就会得到错误

我们运行Coldfusion,并确定Coldfusion没有抛出此错误。我们从未在Coldfusion中看到此错误,因此我们假设IIS在向Coldfusion服务器发送请求之前就抛出了错误

我假设在IIS7.5中有一些设置,我们可以提高这个限制。我在网上搜索过,但我能找到的只是如何提高这些数据的字节大小限制,而不是对允许的字段数量的任何限制


那么,我认为这是可以改变的,如果是这样的话,如何改变呢?

这是热修复程序APSB12-06引入的一个问题。虽然这是一个ColdFusion错误,但人们已经报道过

neo runtime.xml
中有一个设置,它定义了
postsizelimit
,默认值为100

完整的笔记在这里,但这里是简短的版本

此热修复程序在ColdFusion中有一个新设置,即Post参数限制。此设置限制post请求中的参数数量。默认值为100。如果post请求包含指定的更多参数,则服务器不会处理该请求并引发异常。此过程使用哈希冲突防止DoS攻击。此设置不同于Post大小限制(ColdFusion管理员>设置>Post数据的最大大小)。此设置未在ColdFusion管理员控制台中公开。但您可以在neo-runtime.xml文件中轻松更改此限制。见下文第5点。 要更改postParameterLimit的客户,请转到{ColdFusion Home}/lib进行服务器安装,或转到{ColdFusion Home}/WEB-INF/cfusion/lib进行多服务器或J2EE安装。在第行之后打开文件neo-runtime.xml

100.0
添加下面的行,您可以用所需的数字更改100

<var name='postParametersLimit'><number>100.0</number></var>
100.0
CF10+在CF Admin Settings页面中的
请求后参数的最大数量
下的
服务器设置->设置下有可编辑的设置


在我们的9.0.1服务器上,我们刚刚将设置增加到10000,没有看到任何负面影响。

我相信您遇到了ColdFusion的一个安全功能。您正在运行哪个ColdFusion版本?在年,他们引入了一个修复程序,使用哈希冲突来防止DoS攻击。从该页:

此修补程序在ColdFusion中实现了一个新设置,即Post参数 限制。这限制了post请求中的参数数量。这个 默认值为100。如果post请求包含更多参数 指定时,服务器将不处理该请求并抛出 例外。这样做是为了使用哈希防止DoS攻击 碰撞此设置与Post大小限制(ColdFusion)不同 管理员>设置>发布数据的最大大小)。我们不是 在ColdFusion管理员控制台中公开此设置,但 可以在neo-runtime.xml文件中轻松更改限制。见第5点 下面

该页上还有关于如何提高该限制的说明。基本上,您必须在neo-runtime.xml文件中进行更改

要更改postParameterLimit的客户,请转到
{ColdFusion Home}/lib
用于服务器安装或
{ColdFusion Home}/WEB-INF/cfusion/lib
用于多服务器或J2EE 安装。在第行之后打开文件neo-runtime.xml:

<var name='postSizeLimit'><number>100.0</number></var>
100.0
添加下面的行,您可以使用所需的数字更改100

<var name='postParametersLimit'><number>100.0</number></var>
100.0

谢谢你的信息!我假设这将需要重新启动CF服务器才能实际使用?另外,如果这是Coldfusion抛出的错误,您是否知道这不会记录在错误部分的CF服务器监视器中的原因?我相信是这样的。我知道我们这样做只是为了确定。我不太清楚为什么这个问题会出现在web服务器和CF服务器之间,但服务器让我头晕目眩。@phantom42请求可能在连接器级别而不是应用服务器级别被拒绝。这意味着应用程序服务器不必处理请求的任何部分,但显然这确实使它看起来像是web服务器的问题。(iis当然有它的公平份额)@phantom42这似乎提高了限制,解决了我们的问题,但它并不完全正确。我将限制提高到了1000,但我使用了我的测试脚本,我能够提交1000多个字段(我尝试了10000个字段,虽然花了更长的时间,但确实花了很长时间)…你是说在提高限制后没有正确执行限制?
<var name='postParametersLimit'><number>100.0</number></var>