【问题标题】:Invalid post back or callback argument无效的回发或回调参数
【发布时间】:2014-11-18 13:57:39
【问题描述】:

“/”应用程序中的服务器错误。

回发或回调参数无效。启用事件验证 在配置中使用或 在一个页面中。出于安全目的, 此功能验证回发或回调事件的参数 源自最初呈现它们的服务器控件。如果 数据有效且符合预期,请使用 ClientScriptManager.RegisterForEventValidation 方法,以便 注册回发或回调数据以进行验证。描述: 当前执行期间发生未处理的异常 网络请求。请查看堆栈跟踪以获取有关的更多信息 错误及其源自代码的位置。

异常详细信息:System.ArgumentException:无效回发或 回调参数。使用配置或 在页面中。出于安全目的, 此功能验证回发或回调事件的参数 源自最初呈现它们的服务器控件。如果 数据有效且符合预期,请使用 ClientScriptManager.RegisterForEventValidation 方法,以便 注册回发或回调数据以进行验证。

来源错误:

在执行过程中产生了一个未处理的异常 当前的网络请求。有关原产地和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。

堆栈跟踪:

[ArgumentException:回发或回调参数无效。事件 使用 in 启用验证 配置或页面中的 。 出于安全目的,此功能验证参数 回发或回调事件源自服务器控件 最初渲染它们。如果数据有效且符合预期,请使用 ClientScriptManager.RegisterForEventValidation 方法,以便 注册回发或回调数据以进行验证。] System.Web.UI.ClientScriptManager.ValidateEvent(字符串唯一 ID, 字符串参数)+323 System.Web.UI.WebControls.HiddenField.LoadPostData(字符串 postDataKey, NameValueCollection postCollection) +56 System.Web.UI.Page.ProcessPostData(NameValueCollection postData, 布尔值 fBeforeLoad) +558 System.Web.UI.Page.ProcessRequestMain(布尔值 includeStagesBeforeAsyncPoint,布尔型 includeStagesAfterAsyncPoint) +2496

----------------------------------- --------------------------------- 版本信息:Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.34237

一些要点:

1) 在此版本中,我们已将生产环境中的框架从 2.0 迁移到 4.5.1,之后我们遇到了这个问题。

2) 当用户空闲 15 分钟并且系统出现上述错误时,我们会自动注销会话。

请帮助我,因为这对我来说非常重要,并继续在生产中发生。

如果您需要我提供更多信息,请告诉我。

【问题讨论】:

  • 您的“自动会话注销”是如何实现的?
  • 您能否发布导致此错误的确切页面的Page_Load 方法的代码?
  • Javascript 计时器每次计时 15 分钟,我们减少 javascript 变量的值,如果用户空闲 15 分钟,我们将通过从 jquery 调用按钮的注销事件来注销会话。
  • protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) return;字符串 serverName = new Uri(ConfigurationSettings.AppSettings["ReportUrl"]).Host; ReportViewer1.ServerReport.ReportServerUrl =New Uri("http://" + serverName + "/ReportServer"); ReportViewer1.ServerReport.ReportServerCredentials = new ReportServerCredentials( ConfigurationSettings.AppSettings["ReportUserName"], ConfigurationSettings.AppSettings["ReportPassword"], ConfigurationSettings.AppSettings["ReportDomain"]);返回;}

标签: c# asp.net .net web


【解决方案1】:

请试试这个:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
       string serverName = new Uri(ConfigurationSettings.AppSettings["ReportUrl"]).Host;
       ReportViewer1.ServerReport.ReportServerUrl =New Uri("http://" + serverName + "/ReportServer"); 
       ReportViewer1.ServerReport.ReportServerCredentials = new ReportServerCredentials( ConfigurationSettings.AppSettings["ReportUserName"], ConfigurationSettings.AppSettings["ReportPassword"], ConfigurationSettings.AppSettings["ReportDomain"]);
   }
}

【讨论】:

  • 我的代码在本地、QA、UAT 和所有需要生产的环境中运行良好
  • 我无法在生产环境中试用。一切正常,当会话自动超时时,它会抛出“无效的回发或回调参数”
猜你喜欢
  • 2011-09-26
  • 1970-01-01
  • 2011-11-20
相关资源
最近更新 更多