苏飞论坛

标题: 解决“Bad Request - Request Too Long”完美方案 [打印本页]

作者: 站长苏飞    时间: 2016-12-26 11:00
标题: 解决“Bad Request - Request Too Long”完美方案
今天在做东西时发现我的许多本地站点都发现了
[C#] 纯文本查看 复制代码
解决“Bad <wbr>Request <wbr>- <wbr>Request <wbr>Too <wbr>Long”

这个错误;然而我在firefox里同样的站点就不会发生这样的事,很是奇怪,仔细想想,以前好像也发生过这样的事,都是没太理会,今天我查找资料想想解决办法。
于是在找的过程中我发现下面一篇文章:
[C#] 纯文本查看 复制代码
cnzz统计代码引起的Bad Request - Request Too Long

解决过程
开始我们推测,可能是某些原因造成Chrome发出的请求头包含过多内容。查看Chrome请求的网址是正常的,也没发现Request Header的异常。既然没在Chrome找到问题的原因,那我们从服务端下手吧,请求长就长一点,只要能让用户看到正常的内容。
服务端IIS究竟在哪个地方返回这个错误的?开始以为是Request Filtering Module,调整了Request Limits设置不能解决问题,禁用Request Filtering Module也解决不了问题。
后来在IIS官方论坛的帖子HTTP 400. The size of the request headers is too long中得知,这个错误是Http.sys返回的,请求头长度限制是由注册表HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters中的两个参数决定的:MaxFieldLength与MaxRequestBytes,缺省值都是16384字节,详见Http.sys registry settings for IIS。
由于修改这两个设置需要重启IIS,并且只是表面上解决问题,所以我们没有立即采取这个方法。又回过头来在Chrome中查看请求头,突然发现cookie的值好长。
[C#] 纯文本查看 复制代码
解决“Bad <wbr>Request <wbr>- <wbr>Request <wbr>Too <wbr>Long”

(, 下载次数: 175)