我时不时会遇到这个错误,
ExecuteStep at line:0 at Column:0 状态信息对此页无效,并且可能已损坏。 (*)无效的视图状态
内部异常:
Application_Error 中未处理的异常
在加载行:0 和列:0 Base-64 字符数组或字符串的长度无效
调试已启用,并且 pdb 文件存在,并且如您所见,调试信息并没有确切地告诉我它发生在哪里。
我正在使用 ASP.NET、C#、DotNet 4.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 提供的另一个问题的答案:点击这里 https://stackoverflow.com/questions/1821243/cryptographicexception-padding-is-invalid-and-cannot-be-removed-and-validation/2551810#2551810
他提供了三种可能性,我的问题是页面重新加载三次导致视图状态损坏。
我有一个自定义的 JQuery 日期选择器,并且有一个 javascript 代码来调用 OnvalueChanged 事件,我正在比较两个相同但格式不同的日期值,这导致该事件以某种方式多次触发。
要调试此问题,请在 Page_Load 事件上放置一个断点,如果多次触发该事件,则开始删除一些代码/用户控件、脚本,直到找到原因为止。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)