3

我正在使用 Asp Net Mvc 4 Web Api,我需要使用查询字符串长度 > 2000 个符号发出请求

我已经在 web.config 中设置了 maxQueryStringLength="10000" 参数。在我的开发人员机器上一切正常在 IIS 上,它仅在 querystring < 2000 个符号时才有效,但如果 querystring > 2000 个符号我得到一个错误:404 Not Found

有什么考虑吗?

4

2 回答 2

3

聚会迟到了,但是,这是我们为了摆脱它而改变的三点:

web.config中,添加httpRuntime标签属性maxQueryStringLength

<system.web>
  <httpRuntime maxQueryStringLength="32768" />
</system.web>

再次在 中web.config,添加requestLimits标签属性maxQueryString

<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxQueryString="32768" />
    </requestFiltering>
  </security>
<system.webServer>

如果仍然无法治愈,请从 IIS 配置ISAPI Filters部分中删除 UrlScan过滤器。最后一个在我的情况下成功了。但是,请注意,它会带来安全风险。

于 2018-06-04T11:59:58.497 回答
2

您是否还设置了 maxUrl 长度?

maxUrl 可选的 uint 属性。

指定 URL 的最大长度,以字节为单位。

默认值为 4096。

http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering/requestLimits

于 2012-07-30T17:10:34.490 回答