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

itlao6 .NET 原创 工具&方法 开发&源码评论565字数 774阅读2分34秒阅读模式
BUG:

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

解决IIS站点get请求链接过长导致的404.15问题文章源自IT老刘-https://itlao6.com/11102.html

分析:

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

解决:

在IIS站点的web.config配置中修改文章源自IT老刘-https://itlao6.com/11102.html

1、搜索system.webServer,在system.webServer节点下加入maxQueryString配置,如下:文章源自IT老刘-https://itlao6.com/11102.html

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

2、搜索httpRuntime ,在<system.web>节点下的httpRuntime 节点中配置 :maxRequestLength="20480" maxQueryStringLength="10240",如下:文章源自IT老刘-https://itlao6.com/11102.html

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

备注:上述修改配置1为IIS允许请求字符串长度,根据自己的需求修改值;只增加1时,应用能接收到请求并报错maxQueryString不能大于maxQueryStringLength,于是相应的把maxQueryStringLength也加大。文章源自IT老刘-https://itlao6.com/11102.html 文章源自IT老刘-https://itlao6.com/11102.html

weinxin
我的微信公众号
微信扫一扫关注公众号,不定时更新
itlao6
  • 本文由 发表于 2023年 7月 17日 14:28:00
  • 转载请务必保留本文链接:https://itlao6.com/11102.html
评论  0  访客  0
匿名

发表评论

匿名网友

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

确定