解决IIS站点get请求链接过长导致的404.15问题

  • 1,036 views
  • 阅读模式
BUG:

遇到个偶发的bug,大部分情况能正常调用接口,偶尔有几次失败,而且代码中打印的日志找不到;说明请求没有到应用中,于是看iis日志,报错404,把链接拷贝出来,放浏览器刷新,就出现如下错误。

解决IIS站点get请求链接过长导致的404.15问题

分析:

根据上述图片中的提示,分析是请求字符串过长,而且不是浏览器报错,而是客服端报错,于是猜测IIS存在get请求默认长度,查询资料,果然默认长度为2048,而上述请求在不同条件下长度在1900~2200之间,于是就出现了偶尔无法正常返回的bug

解决:

IIS站点的web.config配置中修改

1、搜索system.webServer,在system.webServer节点下加入maxQueryString配置,如下:

<security>
    <requestFiltering >
        <requestLimits maxQueryString="10240"></requestLimits>
    </requestFiltering>
</security>

2、搜索httpRuntime ,在<system.web>节点下的httpRuntime 节点中配置 :maxRequestLength="20480" maxQueryStringLength="10240",如下:

<system.web>
    <httpRuntime enableVersionHeader="false" maxRequestLength="20480" maxQueryStringLength="10240" />
</system.web>

备注:上述修改配置1为IIS允许请求字符串长度,根据自己的需求修改值;只增加1时,应用能接收到请求并报错maxQueryString不能大于maxQueryStringLength,于是相应的把maxQueryStringLength也加大。

weinxin
扫码关注微信公众号--IT老五
微信扫一扫关注公众号,获取更多实用app,订阅地址不定时更新
IT老五
  • 本文由 发表于 2023-07-17 14:27:09
  • 转载请务必保留本文链接:https://itlao5.com/10485.html
评论  0  访客  0
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定