在asp.net-mvc中,查询字符串过长是否会导致404文件未找到错误?
我有一个asp.net-mvc站点,我有一个例子,在URL中有一个很长的查询字符串。这以前不是一个问题,但我在一些情况下突然发现了这个错误: 404未找到文件或控制器-您正在查找的资源可能已被删除、名称已更改或暂时不可用。 我还没有证明这是由于url长度造成的,但我假设这与querystring的长度有关的原因是,如果我选择删除查询字符串的某些部分,它就可以正常工作,并且我已经检查了每个部分(以确定查询字符串的一部分是否“损坏”) 我可以在我的示例中重现这个错误,该示例的url总长度为2805个字符。这是预期的吗?我在Firefox和Internet Explorer中都看到了这个问题 我问这个问题的原因是,在我的谷歌搜索中,当querystring太长时,IIS似乎抛出了一个不同的错误(415或414错误) 这是在服务器端设置的吗?在web.config中?在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
<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 |