C# Viewstate无效,Base-64字符数组或字符串的长度无效

C# Viewstate无效,Base-64字符数组或字符串的长度无效,c#,asp.net,viewstate,C#,Asp.net,Viewstate,我时常面对这个错误 第0行第0列的ExecuteStep状态信息对此页无效,可能已损坏。(*)无效的视图状态 内部异常: 应用程序中未处理的异常\u错误 加载时,第0行第0列的长度对于Base-64字符数组或字符串无效 调试已启用,并且pdb文件存在,正如您所看到的,调试信息并没有确切地告诉我它发生在哪里 我正在使用ASP.NET、C#、Dotnet4.5 这仅在特定页面加载时发生 [FormatException: Invalid length for a Base-64 char array

我时常面对这个错误

第0行第0列的ExecuteStep状态信息对此页无效,可能已损坏。(*)无效的视图状态

内部异常:

应用程序中未处理的异常\u错误 加载时,第0行第0列的长度对于Base-64字符数组或字符串无效

调试已启用,并且pdb文件存在,正如您所看到的,调试信息并没有确切地告诉我它发生在哪里

我正在使用ASP.NET、C#、Dotnet4.5

这仅在特定页面加载时发生

[FormatException: Invalid length for a Base-64 char array or string.]
   System.Convert.FromBase64_Decode(Char* startInputPtr, Int32 inputLength, Byte* startDestPtr, Int32 destLength) +10545359
   System.Convert.FromBase64CharPtr(Char* inputPtr, Int32 inputLength) +130
   System.Convert.FromBase64String(String s) +41
   System.Web.UI.ObjectStateFormatter.Deserialize(String inputString, Purpose purpose) +66
   System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter2.Deserialize(String serializedState, Purpose purpose) +8
   System.Web.UI.Util.DeserializeWithAssert(IStateFormatter2 formatter, String serializedState, Purpose purpose) +40
   System.Web.UI.HiddenFieldPageStatePersister.Load() +127

[ViewStateException: Invalid viewstate. 
    Client IP: ::1
    Port: 
    Referer: http://localhost:8000/ERP/MemberArea/Permits/Process_New.aspx
    Path: /ERP/MemberArea/Permits/Process_New.aspx
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
    ViewState: gIPYryxr+zwvGD5IdEv+hEYGPlEzkjxJDqtmnwmHt1TAjkdQ7AnFxm4v+85SO51MA3b+XRxf66nzwA8s8PqtrkQ8HdesiWnhkFp84+2ojOaAPw0+9FEw88EtB+2DH2Am7tv1qxS+WORKR0CducWqvJ65X7Q2iJH0yDwxCrNIOxIH/xgur3macyaqxYhZD99Jr+yrwiHY6q8v/IkdR41gz8UoGkU/J+5RB//I1RQZ8HAXLJhnEG4c5ZfJ0OD5kyyLI23S4JRaOR6vQT95nAdoxqSzsOLdiyYWPfrCyTk1gm8cPNLYzy1wC3JQ5I5446M/Y+2JjH1qde/0fhlKdsng4InIPOSFtWCckTe8aZBNFQvCd3fJdAByQvMVSXoRi9xNO3Ulwyd2nn/z0b5/ST/o+6TysKZ7Yeb/UPdnw5tXH9va0opHDZex289ZTaS7kpFWZaiXNbVbGNwBtRAtjqJXQb4+/C3pO6EWQh+snv929LyM52eDA+3F+6CZuFKSJo4naJL+lSL0A/sBMXC2tHEf3DPEAvbVSFb8nuYcpVJxddJkIw49GJ7BmwHk8gL9sON4ZaQdDmXe7HHGWFNdsfiZ2fB/HfTE/U/a6qmlOcciVAui+qTzxri1iGFhSa4QhkcgstPF5O6CLPYASsnCfmvBrIdQVB02j1yg2hqthtz5Z7gdKwqpr5qBmYI2q1W9OjTPf2LJjJExOmBm8/9DAY7hDt4VBJH9/WRQNz9TQh2ktn2tsZvyGBLvalyhHoGMpH...]

[HttpException (0x80004005): The state information is invalid for this page and might be corrupted.]
   System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) +198
   System.Web.UI.HiddenFieldPageStatePersister.Load() +266
   System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +88
   System.Web.UI.Page.LoadAllState() +36
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +6704
   System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +245
   System.Web.UI.Page.ProcessRequest() +72
   System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +21
   System.Web.UI.Page.ProcessRequest(HttpContext context) +58
   ASP.memberarea_permits_process_new_aspx.ProcessRequest(HttpContext context) in c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\ERP\5da93c6f\27d5fbc5\App_Web_llo4zgw1.4.cs:0
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +341
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69

所有学分都归@Aristos所有,因为他回答了另一个问题:

他提供了三种可能性,我的问题是页面重新加载了三次,导致viewstate损坏

我有一个定制的JQuery日期选择器,有一个javascript代码来调用OnvalueChanged事件,我比较了两个相同但格式不同的日期值,这导致事件多次触发


要对此进行调试,请在Page_Load事件上设置一个断点,如果触发多次,则开始删除一些代码/用户控件和脚本,直到找到原因。

PS:即使出现这些错误,应用程序似乎仍在运行,但我担心我会错过一些东西。这是发生在有效的请求上,还是您/某人纯粹的书面登录/表单填充自动化有时会产生错误数据?如果您可以在附加调试程序时复制,请确保关闭“工具->选项->调试->仅我的代码”并启用“异常->抛出时”以尽早捕获异常。如果您无法复制-设置WinDbg脚本以获取有趣异常的小型转储文件,连接WinDbg并等待…您可以阅读以下答案-我可以帮助您:@OHDev我遇到这种情况,重新加载2-3次,可能是快速双击,或者某种javascript使其重新加载。。。。