Asp.net

IIS 7 中的請求 URL 無效

  • May 23, 2017

這是我的網址

http://abc.domain.com/controller/action/A74444C3A7FA858C7995CA9954CBCF1E26604634767C5575396D908E8415CF8CCC04C05F49FED0AA9D9743B69ABF232BDE9787A5222D081DA638896C0D2379A673E1747A2FFE1158F14AF098B2899D2ABEB4EA738D89369627E479796B6B2B9EA9B247CC59EF10E3A88B6A56A87F0818E2AD2A942FFA31F1C941BB7AF6FDC55FE6733353F28DFAC1827688604CBFBAB4856E6C75F810D13923F9D913F51F5B02980163E6CD63BC04610AD2C12E07360D7BC2C69F1B0CD03E

由於所有內容都已加密,因此 URL 本身沒有無效字元。我仍然得到

錯誤請求 - 無效 URL HTTP 錯誤 400。請求 URL 無效。

我知道 URL 非常長,我可以通過添加這個 httpRuntime maxUrlLength=“512” 在我的 Cassini 中解決這個問題

在 web.config 中

然而,在 IIS7 中,即使在使用了 requestfiltering maxurl 和 maxquerystring 值之後,我也無法解決這個問題。

這是一個 asp.net mvc 3 應用程序。

您的問題是您沒有使用查詢字元串,而是使用路徑。路徑的最大長度為 255。

這是為了後代和跟踪我自己的問題。然而,在另一個答案中已經說過,沒有那麼明確。

我最後也遇到了同樣的問題。答案當然是將長 URL 段轉換為 Query 字元串。更容易處理。

然而問題是 HTTP.sys 甚至不讓請求通過,因為 URL 的一部分超過了 260 個左右的字元。但是,我們仍然必須支持它。

您可以在系統資料庫中更改該設置。重新啟動後,該網址將起作用。

系統資料庫:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters]
"UrlSegmentMaxLength"=dword:00000400

這將有效地將段長度設置為 1024。

資源

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