在做URL傳參時,遇到如題的問題,引起這一原因是由於所傳參數長度大於URL默認限制的長度大小。
解決方法:
第一步,在web.config文件中的<system.web>節點下添加<httpRuntime maxQueryStringLength="2097151" maxUrlLength="2097151"/>。
第二步,在以下註冊表項下,可以創建下列 DWORD 值:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
註冊表項 | 默認值 | 有效值範圍 | 功能說明 |
MaxFieldLength | 16384 | 64 - 65534 (64K - 2) 字節 | 設置每個標頭的上限。請參見 MaxRequestBytes。它會將每個 URL 的最大字符數限制在大約 32K 左右。 |
MaxRequestBytes | 16384 | 256 - 16777216 (16MB) 字節 | 確定請求行和標頭的總大小的上限。 默認設置是 16KB。 如果此值小於 MaxFieldLength,則調整 MaxFieldLength 值。 |
UrlSegmentMaxLength | 260 | 0- 32,766 字符 | URL 路徑段(URL 中斜槓之間的部分)中的最大字符數。如果爲零,則其長度受 ULONG 最大值的限制。 |
第三步,只有重新啓動 HTTP 服務,對註冊表所做的更改纔會生效。此外,可能還需要重新啓動所有相關的 IIS 服務。(或者重新啓動計算機)
要重新啓動 HTTP 服務、類型和所有相關的 IIS 服務,請按照下列步驟操作:
- 依次單擊“開始”、“運行”,鍵入 Cmd,然後單擊“確定”。
- 在命令提示符處,鍵入 net stop http,然後按 Enter。
- 在命令提示符處,鍵入 net start http,然後按 Enter。
- 在命令提示符處,鍵入 net stop iisadmin /y,然後按 Enter。
注意:所有依賴 IIS Admin Service 服務的 IIS 服務也將停止。請記下在停止 IIS Admin Service 服務時停止的 IIS 服務。在下一步中,將需要重新啓動其中的每項服務。 - 重新啓動在步驟 4 中停止的 IIS 服務。爲此,請在命令提示符處鍵入 net start servicename,然後按 Enter。在該命令中,servicename 是要重新啓動的服務的名稱。例如,要重新啓動 World Wide Web Publishing Service 服務,請鍵入 net start "World Wide Web Publishing Service",然後按 Enter。