通過檢查我的elmah日誌,我看到我不斷收到「太長的url」請求。錯誤是:Asp.Net MVC:具有太長URL和錯誤處理請求
System.Web.HttpException (0x80004005): The length of the URL for this request exceeds the configured maxUrlLength value.
at System.Web.HttpRequest.ValidateInputIfRequiredByConfig()
at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)
這裏是那種要求,我收到:
/index.php/blog/post/the_ten_deceptions_of_the_datetimepicker/+[PLM=0]+GET+http:/www .visualhint.com/index.php的/博客/後/ the_ten_deceptions_of_the_datetimepicker/+ [0,23778,23037] + - > + [N] + POST HTTP +:/www.visualhint.com/index.php/blog/post/ the_ten_deceptions_of_the_datetimepicker/+ [0,0,2007]
(不要驚訝於php的事情......在成爲一個asp.net mvc網站之前,我的網站當URL停在/index.php/blog/post/the_ten_deceptions_of_the_datetimepicker是PHP,現在我需要這種舊網址重定向到我新的URL格式,效果很好)
什麼能產生這些要求?它聽起來有惡意嗎?
我有自定義錯誤設置,所以我雖然這樣的請求將被重定向到我的自定義錯誤頁面,但事實並非如此。相反,人們會得到典型的黃色屏幕(螢火蟲提到這是一個400壞請求)。如果你看看上面的堆棧跟蹤,它非常短,異常似乎很早被捕獲(Application_BeginRequest甚至沒有被調用)。是否有可能顯示我的自定義錯誤頁面,或者我能否至少在發生這種異常時重定向到我的主頁?
我嘗試添加錯誤400線在我的web.config:
<customErrors mode="RemoteOnly">
<error statusCode="400" redirect="/" />
</customErrors>
這重定向到網頁的權利,但它增加了完整的URL在aspxerrorpath查詢字符串值。
感謝您的幫助。
這裏的建議可能有幫助:http://stackoverflow.com/questions/1185739/asp-net-mvc-url-routing-maximum-path-url-length –