在asp.net-mvc中,查询字符串太长会导致404 File not found错误吗?

leo*_*ora 9 asp.net-mvc query-string http-status-code-404

我有一个asp.net-mvc网站,我有一个案例,我在URL中有一个很长的查询字符串.这在以前不是问题,但我突然在以下几种情况下遇到此错误:

在此输入图像描述 404-File或director not found - 您要查找的资源可能已被删除,名称已更改或暂时不可用.

我没有证明它是由于url长度,但我假设这与查询字符串的长度有关的原因是,如果我选择删除查询字符串的某些部分它工作正常,我已经通过每个部分(以确定部分查询字符串是"腐败的"

我能够在我的示例中重现此错误,其总网址长度为2805个字符.这是预期的吗?我在Firefox和Internet Explorer中都看到了这个问题.

我问的原因是,从我的谷歌搜索,当查询字符串太长时,似乎IIS抛出一个不同的错误(如此处所述 415或414错误)

这是在服务器端设置的吗?在web.config中?

Anj*_*jyr 14

<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxQueryString="xxxx"/>
    </requestFiltering>
  </security>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

看到

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

https://msdn.microsoft.com/en-us/library/e1f13641(v=vs.100).aspx

  • 我也必须设置这个: &lt;httpRuntime maxQueryStringLength="99999" maxUrlLength="99999"/&gt; (2认同)

Nig*_*888 5

MSDN

当请求过滤由于 HTTP 请求超出请求限制而阻止 HTTP 请求时,IIS 7 将向客户端返回 HTTP 404 错误并记录以下 HTTP 状态之一,并使用唯一的子状态来标识请求被拒绝的原因:

| HTTP    | Substatus Description     | 
|---------|---------------------------|
|  404.13 | Content Length Too Large  |
|  404.14 | URL Too Long              |
|  404.15 | Query String Too Long     | 
Run Code Online (Sandbox Code Playgroud)

仅供参考 - 2048 通常被认为是 URL 长度的最高跨浏览器限制。