在 asp.net-mvc 中,querystring 太长会导致 404 File not found 错误吗?
In asp.net-mvc, would a querystring too long result in 404 File not found error?
我有一个 asp.net-mvc 站点,我有一个例子,我在 URL 中有一个很长的查询字符串。这以前不是问题,但在某些情况下我突然收到此错误:
404-找不到文件或目录 - 您要查找的资源可能已被删除、已更改名称或暂时不可用。
我还没有证明它是由于 url 长度,但我假设这与查询字符串的长度有关的原因是,如果我选择删除查询字符串的某些部分,它工作正常并且我已经浏览了每个部分(确定查询字符串的一部分是 "corrupt"
我能够在我的示例中重现此错误,该示例的总 url 长度为 2805 个字符。这是预期的吗?我在 Firefox 和 Internet Explorer 中都看到了这个问题。
我问的原因是,从我的谷歌搜索来看,当查询字符串太长时,IIS 似乎会抛出一个不同的错误(415 或 414 错误 as described here)
这是在服务器端设置的吗?在 web.config?
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxQueryString="xxxx"/>
</requestFiltering>
</security>
</system.webServer>
见
http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering/requestLimits
https://msdn.microsoft.com/en-us/library/e1f13641(v=vs.100).aspx
IIS 似乎对非常长的查询字符串抛出了非标准的 404.15 错误代码。这可能被默认错误处理程序掩盖了,实际错误被映射到裸 404 错误。
阅读此内容了解详情:
http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits
根据 MSDN:
When request filtering blocks an HTTP request because an HTTP request exceeds the request limits, IIS 7 will return an HTTP 404 error to the client and log one of the following HTTP statuses with a unique substatus that identifies the reason that the request was denied:
| HTTP | Substatus Description |
|---------|---------------------------|
| 404.13 | Content Length Too Large |
| 404.14 | URL Too Long |
| 404.15 | Query String Too Long |
仅供参考 - 2048 通常被认为是 URL 长度的最高跨浏览器限制。
我有一个 asp.net-mvc 站点,我有一个例子,我在 URL 中有一个很长的查询字符串。这以前不是问题,但在某些情况下我突然收到此错误:
我还没有证明它是由于 url 长度,但我假设这与查询字符串的长度有关的原因是,如果我选择删除查询字符串的某些部分,它工作正常并且我已经浏览了每个部分(确定查询字符串的一部分是 "corrupt"
我能够在我的示例中重现此错误,该示例的总 url 长度为 2805 个字符。这是预期的吗?我在 Firefox 和 Internet Explorer 中都看到了这个问题。
我问的原因是,从我的谷歌搜索来看,当查询字符串太长时,IIS 似乎会抛出一个不同的错误(415 或 414 错误 as described here)
这是在服务器端设置的吗?在 web.config?
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxQueryString="xxxx"/>
</requestFiltering>
</security>
</system.webServer>
见
http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering/requestLimits
https://msdn.microsoft.com/en-us/library/e1f13641(v=vs.100).aspx
IIS 似乎对非常长的查询字符串抛出了非标准的 404.15 错误代码。这可能被默认错误处理程序掩盖了,实际错误被映射到裸 404 错误。
阅读此内容了解详情: http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits
根据 MSDN:
When request filtering blocks an HTTP request because an HTTP request exceeds the request limits, IIS 7 will return an HTTP 404 error to the client and log one of the following HTTP statuses with a unique substatus that identifies the reason that the request was denied:
| HTTP | Substatus Description |
|---------|---------------------------|
| 404.13 | Content Length Too Large |
| 404.14 | URL Too Long |
| 404.15 | Query String Too Long |
仅供参考 - 2048 通常被认为是 URL 长度的最高跨浏览器限制。