What causing this “Invalid length for a Base-64 char array”

前端 未结 12 2037
走了就别回头了
走了就别回头了 2020-11-28 02:56

I have very little to go on here. I can\'t reproduce this locally, but when users get the error I get an automatic email exception notification:



        
12条回答
  •  谎友^
    谎友^ (楼主)
    2020-11-28 03:33

    This isn't an answer, sadly. After running into the intermittent error for some time and finally being annoyed enough to try to fix it, I have yet to find a fix. I have, however, determined a recipe for reproducing my problem, which might help others.

    In my case it is SOLELY a localhost problem, on my dev machine that also has the app's DB. It's a .NET 2.0 app I'm editing with VS2005. The Win7 64 bit machine also has VS2008 and .NET 3.5 installed.

    Here's what will generate the error, from a variety of forms:

    1. Load a fresh copy of the form.
    2. Enter some data, and/or postback with any of the form's controls. As long as there is no significant delay, repeat all you like, and no errors occur.
    3. Wait a little while (1 or 2 minutes maybe, not more than 5), and try another postback.

    A minute or two delay "waiting for localhost" and then "Connection was reset" by the browser, and global.asax's application error trap logs:

    Application_Error event: Invalid length for a Base-64 char array.
    Stack Trace:
         at System.Convert.FromBase64String(String s)
         at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)
         at System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState)
         at System.Web.UI.HiddenFieldPageStatePersister.Load()
    

    In this case, it is not the SIZE of the viewstate, but something to do with page and/or viewstate caching that seems to be biting me. Setting parameters enableEventValidation="false", and viewStateEncryption="Never" in the Web.config did not change the behavior. Neither did setting the maxPageStateFieldLength to something modest.

提交回复
热议问题