在IIS下运行时,ValidateInput(false)似乎不起作用

时间:2009-10-13 22:10:28

标签: asp.net asp.net-mvc iis

当我在 VS dev服务器下运行 ASPNet MVC 2预览1 网站时,当我使用表单方法“获取表单时,它可以正常工作“ - 表单有一个文本框,其中文本有尖括号(例如:”i< 10;“)

但是在IIS下,当发布相同的表单时(使用方法“获取”),我找不到404页面。

The resource cannot be found.

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly. 

Requested URL: /Rejected-By-UrlScan

在网上搜索,没有任何有助于解决问题。

是的,我确实有

  1. 在Views-> Web.config,Main Web.Config
  2. 上设置ValidateRequest =“false”
  3. Controller类上设置的ValidateInput(false)属性以及所有Action方法
  4. 这两个选项都没有帮助解决问题。

    任何帮助表示赞赏

2 个答案:

答案 0 :(得分:1)

您的404消息中存在一个主要问题。

Requested URL: /Rejected-By-UrlScan

UrlScan是一个安装在IIS服务器上的安全软件包,但不安装在Visual Studio开发服务器中,这解释了为什么你只在IIS上遇到这个问题。你提到你的帖子数据中有斜角括号,因此可能是因为UrlScan阻止了这个请求,但我对UrlScan不够熟悉。

摆弄ASP.NET控件的属性可能无法提供解决方案,因为UrlScan会在到达 ASP.NET之前阻止此请求。

我真的不能提供比这更多的东西(就像我说的那样,我对UrlScan并不是那么熟悉,除了模糊的想法之外),但如果我是你,我会从google搜索开始对于UrlScan并找出如何配置它 - 或者它是否有某种日志可以帮助您确定它阻止此特定请求的确切原因。

编辑: http://learn.iis.net/page.aspx/473/using-urlscan看起来是个好地方。

答案 1 :(得分:0)

web.config中的ValidateRequest更改在ASP.NET MVC中无效。它默认启用,您需要使用属性来启用/禁用它。

参见此参考:

http://stephenwalther.com/blog/archive/2009/02/20/tip-48-ndash-disable-request-validation.aspx