2009-04-22 2 views
0

다음 오류가 발생합니다. viewstate MAC의 유효성 검사에 실패했습니다. 이 응용 프로그램이 웹 팜 또는 클러스터에서 호스팅되는 경우 구성에서 동일한 validationKey 및 유효성 검사 알고리즘을 지정해야합니다. AutoGenerate는 클러스터에서 사용할 수 없습니다. 설명 : 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. 오류 및 코드에서 시작된 위치에 대한 자세한 정보는 스택 추적을 검토하십시오.마스터 페이지에서 링크 버튼을 클릭하는 중 오류가 발생했습니다.

예외 정보 : System.Web.HttpException : viewstate MAC 유효성 검사가 실패했습니다. 이 응용 프로그램이 웹 팜 또는 클러스터에서 호스팅되는 경우 구성에서 동일한 validationKey 및 유효성 검사 알고리즘을 지정해야합니다. AutoGenerate는 클러스터에서 사용할 수 없습니다.

소스 오류 :

디버그 모드로 컴파일하는 경우에만 표시 할 수있는이 처리되지 않은 예외를 생성 한 소스 코드입니다. 이를 활성화하려면 아래 단계 중 하나를 수행 한 다음 URL을 요청하십시오.

  1. 오류를 생성 한 파일의 맨 위에 "Debug = true"지시문을 추가하십시오. 예 :

또는이 두 번째 기술은 모든 원인이됩니다

참고 :

2) 응용 프로그램의 구성 파일에 다음 섹션을 추가 디버그 모드로 컴파일되도록 주어진 애플리케이션 내의 파일들. 첫 번째 기법은 특정 파일 만 디버그 모드로 컴파일하도록합니다.

중요 : 디버그 모드에서 응용 프로그램을 실행하면 메모리/성능 오버 헤드가 발생합니다. 프로덕션 시나리오에 배포하기 전에 응용 프로그램에서 디버깅을 사용하지 않도록 설정해야합니다.

스택 추적 :

[. HttpException (0X80004005) : 데이터의 유효성을 검사 할 수 없습니다]

System.Web.Configuration.MachineKeySection.GetDecodedData (바이트 [] BUF 바이트 [] 개질제 INT32 시작 INT32 길이 INT32 & 데이터 길이) 2546780 System.Web.UI.ObjectStateFormatter.Deserialize (문자열 inputString) 214

[ViewStateException : 잘못된 viewstate가. 클라이언트 IP : 127.0.0.1 포트 : 사용자 에이전트 : Mozilla/4.0 (호환; MSIE 6.0; 윈도우 NT 5.1; SV1, InfoPath.2; .NET CLR 2.0.50727) 의 ViewState : 9xQG6dYJ5zq2jCqMiucYRNTojwFlEGYjCH2OQX2PsmFzIZhHtD11AD5JBQmMuoIw105QqG46Ew4o8mVXLBG + T9hl2qqjTTQ/jlivQHaLBjR/cojc5VTk2aZUCmDSZBt/z1yzV8kJLFYrNmIkKAztL + eeZho/zZmCVfRAIcCyhIc = 참조 자 : http://localhost:1124/Login/ApproveAppointments.aspx 경로 : /Login/ApproveAppointments.aspx]

[HttpException (0X80004005)의 viewstate MAC 검증에 실패했습니다. 이 응용 프로그램이 웹 팜 또는 클러스터에서 호스팅되는 경우 구성에서 동일한 validationKey 및 유효성 검사 알고리즘을 지정해야합니다. 클러스터에서 AutoGenerate를 사용할 수 없습니다.] System.Web.UI.ViewStateException.ThrowError (Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) +116 System.Web.UI.ObjectStateFormatter.Deserialize (String inputString) +251 System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize (문자열 serializedState) +4 System.Web.UI.Util.DeserializeWithAssert (IStateFormatter 포맷터, 문자열 serializedState) +37 System.Web.UI.HiddenFieldPageStatePersister.Load() 220 System.Web.UI.Page.LoadPageStateFromPersistenceMedium () +83 System.Web.UI.Page.LoadAllState() +35 System.Web.UI.Page.ProcessRequestMain (부울 includeStagesBeforeAsyncPoint 부울 includeStagesAfterAsyncPoint) 6,953 System.Web.UI.Page.ProcessRequest (부울 includeStagesBeforeAsyncPoint, 부울 포함 StagesAfterAsyncPoint) +154 System.Web.UI.Page.ProcessRequest() +86 System.Web.UI.Page.ProcessRequestWithNoAssert (HttpContext context) +18 System.Web.UI.Page.ProcessRequest (HttpContext context) +49 ASP.login_approveappointments_aspx.ProcessRequest (HttpContext를 컨텍스트) +29 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 154 (IExecutionStep 단계, 부울 & completedSynchronously) +64

소스 오류로 제공된 코드를 시도했습니다.하지만 해결할 수 없습니다. 도움을 줄 수 있습니까?

답변

-1

클러스터의 모든 컴퓨터에있는 web.configs에 동일한 컴퓨터 키를 넣었는지 확인하십시오.

<machineKey validationKey="AAABBBCCCDDD111222333444AAABBBCCCDDD111222333444AAABBBCCCDDD111222333444" decryptionKey="AAABBBCCCDDD111222333444" validation="SHA1"/> 
관련 문제