web项目中,get方式传值是通过地址栏中的url参数进行传递的。除了浏览器对url长度的限制大小不一之外,出于安全考虑,
IIS中对于URL中参数大小也是有限制的,默认为2048KB。
如果参数大于这个数字的话,我们应该手动的去重置该值。
对于frameword4.0做如下设置:
在web.config文件中找到Httpruntime节点,做如下修改:
其中maxQueryStringLength的值即为重置的新值。
<httpRuntime requestValidationMode="3.0" maxQueryStringLength="10240"></httpRuntime>
更新上面的代码后,在本地调试已经没有问题了,但是站点发布后,还是会出现同样的错误。
错误原因就是没有设置iis安全配置信息
接下来,应继续在web.config文件中找到system.webServer节点,做如下设置:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxQueryString="10240"></requestLimits>
</requestFiltering>
</security>
</system.webServer>
其中security中的设置,就是在此指定IIS中允许url传值的大小。