2011-09-01 50 views
5

我有一個本應接受來自Salesforce的不安全字符的應用程序。他們是%0A和%0D(到目前爲止),他們不工作。當網址中存在%0A時IIS 7錯誤請求響應

我已經設置allowDoubleEscapingtruerequestValidationMode2.0requestPathInvalidCharactersBLANKrelaxedUrlToFileSystemMappingtruemaxRequestLength1024

它沒有工作。然後我嘗試爲400設置一個自定義錯誤,以重定向到同一頁面而不傳遞Salesforce發送的數據。也沒有工作。

然後我試着通過IIS 7 Error Pages部分做同樣的事情,但它仍然沒有工作。

如何我:

  1. 獲取應用程序接受的人物?
  2. 或者讓應用程序/ IIS重定向到手動輸入的相同頁面?

所有這些都在ASP.NET MVC 3應用程序中,但我懷疑這很重要,因爲它甚至可能會在IIS調用ASP.NET運行時之前停止它。

我很感激一些幫助。提前致謝!

+0

錯誤是來自ASP.NET還是IIS?你通常可以區分,ASP.NET有YSOD(死亡的黃色屏幕),IIS 7看起來...不同。 – CodingGorilla

+0

可能是IIS,它是白色的,並說「錯誤的請求{HR} HTTP錯誤400.請求URL無效。」 – Gup3rSuR4c

+0

@Alex你有沒有找到解決這個問題?我在網址中遇到與%0A和%0D完全相同的問題。 – Geekman

回答

1

您可能希望看到的地方是在IIS管理器中,單擊您的服務器節點(或網站節點),找到Request Filtering圖標。轉至URL選項卡,您可以在此處始終允許特定的URL,或者更改通常處理URL過濾的方式。我確定這些設置在web.config文件的部分也是可用的,但我不知道所有的設置元素和屬性會是什麼(我確信你可以做一個搜索並輕鬆找到它們)。

修復此問題後,您可能不得不打敗ASP.NET。

0

也許有點晚了,但對我來說,它通過使用AllowRestrictedChars註冊表設置(如https://support.microsoft.com/en-us/kb/820129中記錄)更改配置的異常而起作用。默認值爲0,我將其更改爲1.如果非零,Http.sys接受請求URL中的十六進制轉義字符,這些字符可解碼爲U + 0000 - U + 001F和U + 007F - U + 009F範圍。