仅在一个页面上关闭ViewState验证

时间:2014-02-10 20:13:48

标签: asp.net dotnetnuke

我有一个使用DotNetNuke的ASP.NET 4.0站点,包含许多页面和自定义构建的模块。其中一个页面(自定义构建模块)随机抛出以下异常:

The state information is invalid for this page and might be corrupted.

我在web.config中有validateRequest="false"

<system.web>
    <httpRuntime enableVersionHeader="false" requestValidationMode="2.0" />
    <pages validateRequest="false" enableViewStateMac="true" enableEventValidation="true" viewStateEncryptionMode="Always">

该页面上有许多控件,非常动态。我该怎么做来调试这个问题?有没有办法只关闭该页面上的ViewState验证?

2 个答案:

答案 0 :(得分:1)

请参阅以下帖子,可能有所帮助http://www.ifinity.com.au/Products/Support_Forums/forumid/8/threadid/1341/scope/posts/threadpage/2

修复摘要:

  

viewstate显然处理不当,最后一次更改是url rewriter,所以猜测我已经在urlrewriter条目上方的web.config文件中移动了viewstate模块的httpmodule条目,模糊地希望它会首先执行。确实如此,现在一切正常。很有可能我打破了别的东西(你知道它是怎么回事)所以我还没有高兴,但看起来很有希望。

答案 1 :(得分:1)

我在DNN 6.2.9网站上遇到同样的问题,各种网页在正常情况下都能正常工作。但是,当我在日志中看到此错误时,它总是有一个不寻常的UserAgent,例如“Mozilla / 4.0(兼容; Synapse)”。看到这个帖子“What is Apache Synapse?”在superuser.com上获取有关此特定信息的更多信息。如果是恶意流量POST任意内容,它将生成此错误。