2016-10-31 72 views
0

我有要求,這樣的網址: https://xxx/test/%81IIS 8.5 400錯誤的請求 - 無效的URL

這導致400錯誤的請求 - 無效的URL

我試着在web.config中設置:

<httpRuntime requestValidationMode="2.0" relaxedUrlToFileSystemMapping="true" requestPathInvalidCharacters=""/> 

但它沒有幫助。

我還試圖用自定義的請求驗證:

<httpRuntime requestValidationType="MyNamespace.CustomRequestValidation"/> 

但IIS使用自定義的驗證之前返回400。

我還能做些什麼來讓IIS接受這個URL?

謝謝。

回答

1

根據 https://www.iis.net/learn/troubleshoot/diagnosing-http-errors/troubleshooting-http-400-errors-in-iis HTTP 400的潛在問題是,客戶端已發送到IIS,打破該的HTTP.sys被執行一個或多個規則的請求。

的Http.sys的Windows註冊表設置在這裏dercribed: https://support.microsoft.com/en-us/kb/820129

所以,在我的情況下,問題是由設置在HKEY_LOCAL_MACHINE \ SYSTEM這些鍵解決\ CURRENTCONTROLSET \ SERVICES \ HTTP \參數爲IIS機器:

AllowRestrictedChars = 1 
EnableNonUTF8 = 1 

在將這些更改應用到註冊表後,IIS機器必須重新啓動