Base-64 char数组的长度无效

时间:2010-05-14 17:43:15

标签: asp.net ajax asp.net-ajax

我的ASP.net网页出现以下错误:

Base-64字符数组的长度无效。

当用户在上一个请求完成之前激活ajax请求时,会发生这种情况。如何防止发生此错误?

编辑:这是堆栈跟踪。因为错误似乎没有在我自己的代码中发生,所以我不知道该怎么做。

在System.Convert.FromBase64String(String s) 在System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) 在System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter,String serializedState) 在System.Web.UI.HiddenFieldPageStatePersister.Load()

2 个答案:

答案 0 :(得分:0)

您可以尝试在ajax请求期间阻止后续请求:

function OnRequestStart(sender, args) {
                if (args.EventTargetElement) {
                    var control = document.getElementById("<%= SomeButton.ClientID %>");
                    if (control != null) {
                        if (args.EventTargetElement.id == control .id) {
                            control .disabled = true;
                        }
                    }
                }
            }
            function OnResponseEnd(sender, args) {
                if (args.EventTargetElement) {
                    var control = document.getElementById("<%= SomeButton.ClientID %>");
                    if (control != null) {
                        if (args.EventTargetElement.id == control .id) {
                            control .disabled = false;
                        }
                    }
                }
            }

答案 1 :(得分:-2)

Base64字符串的长度是三的倍数。虽然我无法分辨出无效的Base64字符串来自何处,但似乎有些代码试图解码一个字符串,该字符串是一个损坏的Base64字符串,或者根本不是Base64字符串。