网站中,设计了一个批量搜索的功能,用户可以输入多个关键词进行批量查询搜索,但不出意外的话还是出意外了,有些用户可能会输入 N 多个关键词,我为了性能等考虑,会限制个数,比如每次批量查询仅限 50 个以内,但还是有意外发生,有些关键词可能会很长,即会引发”HTTP Error 400. The request URL is invalid”的错误。如图

按以前的经验呢,先检查了网站程序上的 web.config 文件,httpRuntime 节点下的 maxUrlLength 配置以及 security 节点下的 requestFiltering》maxUrl ,
确认都以及设置过了
<httpRuntime targetFramework="4.6.1" enableVersionHeader="false" requestPathInvalidCharacters="" requestValidationMode="2.0" maxQueryStringLength="2097151000" maxUrlLength="2097151000" maxRequestLength="2097151000" relaxedUrlToFileSystemMapping="true" executionTimeout="36000" delayNotificationTimeout="36000" />
<security>
<requestFiltering allowDoubleEscaping="true" allowHighBitCharacters="true" >
<requestLimits maxAllowedContentLength="2097151000" maxQuer

文章讲述了在网站设计中遇到批量搜索功能导致的HTTPError400错误,尤其是当用户输入过多或过长关键词时。作者检查了web.config文件的相关设置,但问题依然存在。最终,通过修改Windows注册表中HTTP服务的UrlSegmentMaxCount和UrlSegmentMaxLength参数解决了问题,并提供了重启HTTP和IIS服务的步骤。
最低0.47元/天 解锁文章
1888

被折叠的 条评论
为什么被折叠?



