Asp.net-Mvc
在 asp.net-mvc 中,查詢字元串太長會導致 404 File not found 錯誤嗎?
我有一個 asp.net-mvc 站點,並且有一個案例,我的 URL 中有一個很長的查詢字元串。這以前不是問題,但在某些情況下我突然收到此錯誤:
404 - 找不到文件或導向器 - 您要查找的資源可能已被刪除、名稱已更改或暫時不可用。
我還沒有證明這是由於 url 長度造成的,但我假設這與查詢字元串的長度有關的原因是,如果我選擇刪除查詢字元串的某些部分,它工作正常並且我已經瀏覽了每個部分(以辨識部分查詢字元串是“損壞的”
我能夠在總 url 長度為 2805 個字元的範例中重現此錯誤。這是預期的嗎?我在 Firefox 和 Internet Explorer 中都看到了這個問題。
我問的原因是,從我的Google搜尋來看,當查詢字元串太長時,IIS 似乎會引發不同的錯誤(此處描述的415 或 414 錯誤)
這是在伺服器端設置的東西嗎?在 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>
對於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 |僅供參考 - 2048 通常被認為是 URL 長度的最高跨瀏覽器限制。
404 - 找不到文件或導向器 - 您要查找的資源可能已被刪除、名稱已更改或暫時不可用。