C# ASP.net回发或回调参数无效-查找导致问题的控件

C# ASP.net回发或回调参数无效-查找导致问题的控件,c#,asp.net,validation,C#,Asp.net,Validation,我们的一个应用程序出现以下错误。这个错误没有规律可循,昨晚我们记录了其中的3个,有时我们几天都没有记录。我知道某个地方有一个问题,我不想忽视它,因为问题本身会变得更糟,而不是更好 不幸的是,错误消息没有指出导致问题的控件,这正是我想要找到的。我已经阅读了很多关于这个话题的帖子,但是没有一篇是适用的。我们没有使用JS修改下拉列表或其他控件,启用了事件验证,我们没有关闭它,没有嵌套的标记,找不到任何格式错误的标记,等等。如果我能看到页面上的哪个控件触发了它,这将有助于找出可能导致它的原因 我们正在从

我们的一个应用程序出现以下错误。这个错误没有规律可循,昨晚我们记录了其中的3个,有时我们几天都没有记录。我知道某个地方有一个问题,我不想忽视它,因为问题本身会变得更糟,而不是更好

不幸的是,错误消息没有指出导致问题的控件,这正是我想要找到的。我已经阅读了很多关于这个话题的帖子,但是没有一篇是适用的。我们没有使用JS修改下拉列表或其他控件,启用了事件验证,我们没有关闭它,没有嵌套的标记,找不到任何格式错误的标记,等等。如果我能看到页面上的哪个控件触发了它,这将有助于找出可能导致它的原因

我们正在从异常的错误日志中捕获以下内容:

InnerException.Message
GetBaseException()
Request.Url
提前谢谢

信息:

Invalid postback or callback argument.  Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page.  For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.  If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
回发或回调参数无效。在配置或页面中使用启用事件验证。出于安全目的,此功能验证回发或回调事件的参数是否源自最初呈现它们的服务器控件。如果数据有效且符合要求,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证。
详情:

System.ArgumentException: Invalid postback or callback argument.  Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page.  For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.  If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
   at System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId, String argument)
   at System.Web.UI.Control.ValidateEvent(String uniqueID, String eventArgument)
   at System.Web.UI.WebControls.TextBox.LoadPostData(String postDataKey, NameValueCollection postCollection)
   at System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
System.ArgumentException:回发或回调参数无效。在配置或页面中使用启用事件验证。出于安全目的,此功能验证回发或回调事件的参数是否源自最初呈现它们的服务器控件。如果数据有效且符合要求,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证。
位于System.Web.UI.ClientScriptManager.ValidateEvent(字符串唯一标识,字符串参数)
位于System.Web.UI.Control.ValidateEvent(字符串uniqueID,字符串eventArgument)
位于System.Web.UI.WebControl.TextBox.LoadPostData(字符串postDataKey,NameValueCollection postCollection)
在System.Web.UI.Page.ProcessPostData(NameValueCollection postData,布尔fBeforeLoad)
在System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)
检查了另一个记录的条目,但此条目不同。它在链接按钮上失败,而上面的链接按钮将文本框显示为失败点。至少我认为是这样。这是否意味着要更改触发回发的文本框(对于上面的文本框)?我检查了该表单,没有配置ContextChanged的文本框

System.ArgumentException: Invalid postback or callback argument.  Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page.  For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.  If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
   at System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId, String argument)
   at System.Web.UI.Control.ValidateEvent(String uniqueID, String eventArgument)
   at System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
System.ArgumentException:回发或回调参数无效。在配置或页面中使用启用事件验证。出于安全目的,此功能验证回发或回调事件的参数是否源自最初呈现它们的服务器控件。如果数据有效且符合要求,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证。
位于System.Web.UI.ClientScriptManager.ValidateEvent(字符串唯一标识,字符串参数)
位于System.Web.UI.Control.ValidateEvent(字符串uniqueID,字符串eventArgument)
位于System.Web.UI.WebControl.LinkButton.RaisePostBackEvent(String eventArgument)
在System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)

意思是说没有嵌套的表单标签。你能捕获Fiddler的回发请求吗?有了这个,你就可以理解你的表单出了什么问题。我们可以尝试一下,但是错误是随机发生的。这几乎就像用户在站点上做一些事情的组合,然后触发验证错误。不幸的是,我们无法复制。让Fiddler在页面上运行并捕获。我可以看到回发值。页面没有生成验证错误,因此我认为在捕获中不会看到任何异常。如果我能复制这个错误,我会有机会的。我明白了,如果这个问题很难复制的话。您需要记录整个POST请求,并将其与您遇到的问题相匹配。您可以在ASP.NET上启用日志记录,因此您可能会考虑更新错误代码的日志记录。您可以启用IIS日志。有失败的请求在手,你可以检查表单有什么问题。意思是说没有嵌套的表单标签。你能从Fiddler捕获回发请求吗?有了这个,你就可以理解你的表单出了什么问题。我们可以尝试一下,但是错误是随机发生的。这几乎就像用户在站点上做一些事情的组合,然后触发验证错误。不幸的是,我们无法复制。让Fiddler在页面上运行并捕获。我可以看到回发值。页面没有生成验证错误,因此我认为在捕获中不会看到任何异常。如果我能复制这个错误,我会有机会的。我明白了,如果这个问题很难复制的话。您需要记录整个POST请求,并将其与您遇到的问题相匹配。您可以在ASP.NET上启用日志记录,因此您可能会考虑更新错误代码的日志记录。您可以启用IIS日志。有了失败的请求,您可以检查表单的错误。