[오류현상]
페이지 내용을 POST Submit 처리를 할때 아래와 같은 오류가 발생 함.
--------------------------------------
예외 정보: System.Web.HttpException: 이 페이지의 상태 정보가 잘못되었으며 손상되었을 수 있습니다.
[FormatException: 입력에 Base-64가 아닌 문자 또는 세 개 이상의 패딩 문자가 있거나 패딩 문자 사이에 잘못된 문자가 있기 때문에 입력이 유효한 Base-64 문자열이 아닙니다. ]
System.Convert.FromBase64_Decode(Char* startInputPtr, Int32 inputLength, Byte* startDestPtr, Int32 destLength) +14115992
System.Convert.FromBase64CharPtr(Char* inputPtr, Int32 inputLength) +162
System.Convert.FromBase64String(String s) +56
System.Web.UI.ObjectStateFormatter.Deserialize(String inputString, Purpose purpose) +102
System.Web.UI.Util.DeserializeWithAssert(IStateFormatter2 formatter, String serializedState, Purpose purpose) +67
System.Web.UI.HiddenFieldPageStatePersister.Load() +200
[ViewStateException: viewstate가 잘못되었습니다.
[HttpException (0x80004005): 이 페이지의 상태 정보가 잘못되었으며 손상되었을 수 있습니다.]
System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) +157
System.Web.UI.HiddenFieldPageStatePersister.Load() +12061437
[원인]
PostBack 으로 전송되는 페이지 Form 내용중에,. __VIEWSTATE 및 __EVENTVALIDATION 이 중복으로 있어서, 상태값이 유효하지 않기 때문으로 (서버에 ViewState 내용 input 항목이 2개 이상 전송) , 페이지 내용에 ViewState 를 처리하는 Form 개체 태그가 인위적으로 삽입되지 않도록 처리를 할 필요가 있음.
<input id="__VIEWSTATE" type="hidden" name="__VIEWSTATE" value="/gSG .....
<input id="__VIEWSTATEGENERATOR" ......
<input id="__EVENTVALIDATION" ......
<input id="__VIEWSTATE" type="hidden" name="__VIEWSTATE" value="/wEPD .....
<input id="__VIEWSTATEGENERATOR" ......
<input id="__EVENTVALIDATION" ......