新部署后出现“回发或回调参数无效”

新部署后出现“回发或回调参数无效”

问题描述:

最近部署了一个项目投入生产,并遇到“Invalid postback or callback argument”错误。我们在测试中根本没有遇到这种情况,经过一些研究发现问题发生在以下情况:新部署后出现“回发或回调参数无效”

  1. 旧版本已发布和访问。
  2. 在不清除临时文件的情况下发布并访问新版本。
  3. 下拉更改两次。 (第一次一切工作正常。)

已调用客户端的修复程序已清除其临时Internet文件,但这不是理想的修复程序。任何人都可以想到为什么会发生这种情况,并在临时文件被清除后停止发生?

BTW:该应用程序是用C#编写的ASP.NET 3.5。我们在这个特定的控件中使用了JavaScript回调,导致了这个问题。

我们不想使用“enableEventValidation = false”技巧,因为这不是一个一致的问题。从相当早的时候起,我们可以通过清除临时文件来逐个解决问题。

在今天看了更多之后,有人建议我们重命名我们的js文件并注意,问题已在本地解决。似乎每个用户都有我们的旧js文件存储。

至于为什么它会抛出“无效回传”而不是javascript错误,我们不确定。在脚本标记中还有其他指定版本号的方法,但现在我们选择了重命名。

由于您提到您使用的是JavaScript回调,因此这可能与事件验证有关。如果真是如此,对于这个问题,其添加以下行的web.config解决方法:

<pages enableEventValidation="false"/>  

这样,事件验证在你的网页禁用。为了安全起见,不建议将其关闭,因为它验证参数是由服务器控件发起的。

您可以得到有关此错误发生的原因的详细信息here