2010-08-31 203 views
9

當我將HTML輸入到表單中時,我在安裝了.NET 4.0的測試Web服務器上收到應用程序錯誤。我得到的通常的誤差:從所述客戶端 <httpRuntime requestValidationMode =「2.0」/>不起作用(使用IIS 6.0)

這是由在.NET 4.0變化引起禁用關閉自動驗證用於檢測

有潛在危險的Request.Form值HTML輸入。我可以通過添加

<httpRuntime requestValidationMode="2.0" /> 

指令到我的根Web.config的<system.web>部分我的本地開發機器上解決這個問題,和.NET然後榮譽的<pages validateRequest="false" />指令,是在同一個根we​​b.config。奇怪的是,我需要在本地計算機(5.1版本)上重新啓動IIS以使此更改生效。

當我將web.config部署到我們的測試服務器上時,我仍然收到驗證錯誤。我試過使用run > iisreset,停止並啓動IIS(測試服務器上的版本爲6.0),並且我甚至重新啓動了服務器以徹底清除.NET。我的應用程序肯定拿起新的根web.config(我已經測試過),但<httpRuntime requestValidationMode="2.0" />指令似乎只是被忽略。

我的應用程序在本地機器和測試服務器上都配置爲.NET 4.0應用程序。我試過重建應用程序並將其重新部署到測試Web服務器。任何人都可以建議我需要做些什麼來實現這個目標?

在此先感謝,克里斯

+0

對我來說,它在開發和產品環境方面都沒有任何問題。也許是你錯過的其他東西。 – Aristos 2010-08-31 05:18:32

+0

您確定您正在4.0下的應用程序池下運行您的應用程序嗎?或者,您是否在虛擬應用程序/目錄中運行該應用程序/目錄,該應用程序/目錄是2.0/3.5應用程序的子項? – Ted 2010-08-31 18:52:17

回答

3

如果您正在使用MVC3,嘗試在Global.asax.cs加入一個全球性的過濾器。

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
{ 
    filters.Add(new ValidateInputAttribute(false)); 
}