<httpruntime requestvalidationmode =“2.0”>不起作用(使用IIS 6.0)</httpruntime>

时间:2010-08-31 00:22:04

标签: asp.net validation .net-4.0 requestvalidationmode

当我将HTML输入到表单中时,我的测试Web服务器上安装了.NET 4.0的应用程序出现错误。我得到了通常的错误:

  

从中检测到一个潜在危险的Request.Form值   客户端

这是由于.NET 4.0中的更改导致禁用关闭HTML输入的自动验证。我可以通过添加

在我的本地开发机器上解决这个问题
<httpRuntime requestValidationMode="2.0" />

指向我的根web.config的<system.web>部分,然后.NET遵循同一根web.config中的<pages validateRequest="false" />指令。奇怪的是,我需要在本地计算机(版本5.1)上重新启动IIS才能使此更改生效。

当我将根web.config部署到我们的测试服务器时,我仍然会收到验证错误。我尝试使用run > iisreset,停止并启动IIS(测试服务器上的版本6.0),我甚至重新启动服务器以完全清除.NET。我的应用程序肯定是拿起新的根web.config(我已经测试了这个),但是<httpRuntime requestValidationMode="2.0" />指令似乎只是被忽略了。

我的应用程序在我的本地计算机和测试服务器上配置为.NET 4.0应用程序。我已经尝试重建应用程序并将其重新部署到测试Web服务器。任何人都可以建议我需要做些什么才能使其正常工作?

先谢谢你,克里斯

1 个答案:

答案 0 :(得分:3)

如果您使用的是MVC3,请尝试在Global.asax.cs中添加全局过滤器。

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