解决ASP.NET的“A potentially dangerous Request... value was detected”

最近做一个简单的web项目(.NET Framework 3.5),自定义了一个handler(类似Java内的Servlet),本地开发环境(VS2012)测试没有问题,发布到服务器的IIS就出错了,访问handler映射地址时出现如下提示:

A potentially dangerous Request.QueryString value was detected from the client 

搜查各种资料,大部分都是说在web.config中配置

经MSDN官网查得,此项配置需要在.Net Framework 4.0以上才可使用,在VS中配置此项亦会遭到警告“不允许使用‘requestValidationMode’特性”。

原来requestValidationMode是在ASP.NET 4.0(即.Net Framework 4.0)以上才有效的,项目本来就是.Net 3.5的,所以根本不需要使用此特性。但是这个.Net 3.5的却在发布环境的IIS6上发布,IIS6默认使用ASP.NET 4.0所以就开启了对应的拦截功能。

解决方法只需要在IIS6中将项目的ASP.NET属性设置为2.0,然后在handler中加入validate="false"即可。

你可能感兴趣的:(.Net,ASP.NET)