【问题标题】:<httpRuntime requestValidationMode="2.0" /> doesn't work (using IIS 6.0)<httpRuntime requestValidationMode="2.0" /> 不起作用(使用 IIS 6.0)
【发布时间】:2011-04-06 00:48:02
【问题描述】:

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

从 客户

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

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

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

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

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

提前致谢,克里斯

【问题讨论】:

  • 对我来说,它在开发和产品环境中的工作都没有任何问题。也许是你想念的其他东西。
  • 您确定您的应用在 4.0 以下的应用池下运行吗?或者您是否可能在一个虚拟应用程序/目录中运行它,它是 2.0/3.5 应用程序的子级?

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2012-08-25
    • 2011-12-08
    • 2011-11-13
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    相关资源
    最近更新 更多