Asp.net-Mvc

在 asp.net-mvc 中,查詢字元串太長會導致 404 File not found 錯誤嗎?

  • February 23, 2015

我有一個 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 長度的最高跨瀏覽器限制。

引用自:https://stackoverflow.com/questions/28681366