Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在asp.net-mvc中,查询字符串过长是否会导致404文件未找到错误?_Asp.net Mvc_Http Status Code 404_Query String - Fatal编程技术网

在asp.net-mvc中,查询字符串过长是否会导致404文件未找到错误?

在asp.net-mvc中,查询字符串过长是否会导致404文件未找到错误?,asp.net-mvc,http-status-code-404,query-string,Asp.net Mvc,Http Status Code 404,Query String,我有一个asp.net-mvc站点,我有一个例子,在URL中有一个很长的查询字符串。这以前不是一个问题,但我在一些情况下突然发现了这个错误: 404未找到文件或控制器-您正在查找的资源可能已被删除、名称已更改或暂时不可用。 我还没有证明这是由于url长度造成的,但我假设这与querystring的长度有关的原因是,如果我选择删除查询字符串的某些部分,它就可以正常工作,并且我已经检查了每个部分(以确定查询字符串的一部分是否“损坏”) 我可以在我的示例中重现这个错误,该示例的url总长度为2805

我有一个asp.net-mvc站点,我有一个例子,在URL中有一个很长的查询字符串。这以前不是一个问题,但我在一些情况下突然发现了这个错误:

404未找到文件或控制器-您正在查找的资源可能已被删除、名称已更改或暂时不可用。

我还没有证明这是由于url长度造成的,但我假设这与querystring的长度有关的原因是,如果我选择删除查询字符串的某些部分,它就可以正常工作,并且我已经检查了每个部分(以确定查询字符串的一部分是否“损坏”)

我可以在我的示例中重现这个错误,该示例的url总长度为2805个字符。这是预期的吗?我在Firefox和Internet Explorer中都看到了这个问题

我问这个问题的原因是,在我的谷歌搜索中,当querystring太长时,IIS似乎抛出了一个不同的错误(415或414错误)

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


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


似乎IIS为很长的查询字符串抛出了一个非标准的404.15错误代码。这可能被默认的错误处理程序所掩盖,而实际的错误被映射到裸404错误

请阅读以下内容了解详细信息:

根据:

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


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

这是我的问题。我没有收到404.15错误,只是上面的一般错误。由于默认的customErrors设置为RemoteOnly,大多数情况下,您都可以在localhost上捕获这些错误。您还可以尝试使用co来禁用IIS错误页面多种方法。See与运行在IIS和Datatables上的Django在进行大约3500个字符的ajax查询时遇到的问题完全相同。由于您的帖子,将限制设置为5000解决了这一问题,但我希望错误消息能提供更多信息。我还必须设置此选项:使自己容易受到攻击。当有人发现错误时,服务器需要多长时间才能做出响应使用99999查询字符串参数发送一组请求?
| HTTP    | Substatus Description     | 
|---------|---------------------------|
|  404.13 | Content Length Too Large  |
|  404.14 | URL Too Long              |
|  404.15 | Query String Too Long     |