"이 페이지에 대한 viewstate가 잘못되었습니다." 오류 메시지가 문제를 해결하는 데 충분한 정보를 제공하지 않는다

기술 자료 번역 기술 자료 번역
기술 자료: 832183 - 이 문서가 적용되는 제품 보기.
이 문서의 Microsoft .NET Framework 1.1 버전에 대한 내용은 831150을 참조하십시오.


중요 해당 환경의 모든 컴퓨터에 이 핫픽스를 설치하지 않을 경우 또는 해당 환경의 다른 모든 컴퓨터에 핫픽스 323744가 설치되지 않은 경우에는 웹 팜 환경이나 클러스터 환경에 있는 컴퓨터에 이 핫픽스를 설치하지 마십시오.

자세한 내용은 이 문서의 "추가 정보" 절에 있는 "뷰 상태 MAC 기능 설명"을 참조하십시오.
모두 확대 | 모두 축소

이 페이지에서

요약

뷰 상태 데이터는 웹 페이지의 숨김 필드에 저장되기 때문에 클라이언트와 서버 사이에 데이터가 전송될 때 변조될 가능성이 있습니다. 뷰 상태 기능의 보안을 위해 Microsoft ASP.NET은 뷰 상태 데이터의 유효성을 검사하여 이것이 올바른 페이지에서 왔는지 확인합니다.

ASP.NET에서 뷰 상태 데이터의 유효성을 검사할 수 없는 경우 ASP.NET은 "이 페이지에 대한 viewstate가 잘못되었으며 손상되었을 수 있습니다."라는 메시지를 클라이언트 브라우저에 반환합니다. 하지만 이 메시지에는 뷰 상태 데이터가 잘못된 이유에 대한 설명이 없습니다.

뷰 상태 기능에 대한 자세한 내용은 이 문서의 "추가 정보" 절에 있는 ""을 참조하십시오.

해결 방법

이 문서에서는 핫픽스를 제공하지만 이 핫픽스가 뷰 상태 데이터 오류를 해결하지 않습니다. 이 핫픽스는 뷰 상태 데이터 오류 문제를 해결하는 데 도움이 되는 추가 정보만 제공합니다.

현재 지원되는 핫픽스를 Microsoft에서 구할 수 있지만 이 문서에서 설명하는 문제를 해결하기 위한 것일 뿐이므로 이러한 특정 문제가 발생하는 시스템에만 이 프로그램을 적용해야 합니다. 이 핫픽스는 나중에 추가 테스트를 받아야 할 수도 있습니다. 따라서 이 문제의 영향이 심각하지 않으면 이 핫픽스가 포함된 다음 Microsoft .NET Framework 1.0 서비스 팩이 나올 때까지 기다리는 것이 좋습니다.

이 문제를 즉시 해결하려면 Microsoft 고객기술지원부에 문의하여 핫픽스를 구하십시오. Microsoft 고객기술지원부 전화 번호의 전체 목록과 기술 지원 비용에 대한 정보는 다음 Microsoft 웹 사이트를 참조하십시오.
기술 지원 서비스 안내
참고 특정 업데이트로 문제를 해결할 수 있다고 Microsoft 기술 지원 전문가가 판단할 경우 지원 요청에 따른 일반적 비용이 취소될 수도 있습니다. 특정 업데이트가 필요하지 않은 추가 지원 질문과 문제에는 일반 지원 비용이 적용됩니다.

이 핫픽스의 영어 버전은 아래와 같거나 그 이상의 파일 특성을 가집니다. 이 파일의 날짜와 시간은 UTC(Coordinated Universal Time)로 나열되며 파일 정보를 볼 때 로컬 시간으로 변환됩니다. UTC와 로컬 시간의 차이를 알려면 제어판날짜 및 시간 도구에서 표준 시간대 탭을 사용하십시오.
표 축소표 확대
날짜시간버전크기파일 이름
2003-12-1107:131.0.3705.478200,704Aspnet_isapi.dll
2003-12-1107:064,169Aspnet_perf.h
2003-12-1107:14513,302Aspnet_perf.ini
2003-12-1107:14510,714Aspnet_perf2.ini
2003-12-1107:141.0.3705.47824,576Aspnet_regiis.exe
2003-12-1107:141.0.3705.47828,672Aspnet_wp.exe
2003-12-1106:271.0.3705.47869,632Corperfmonext.dll
2003-06-1721:4316,597Installpersistsqlstate.sql
2003-06-1721:4317,331Installsqlstate.sql
2003-09-0900:2817,807Installsqlstatetemplate.sql
2003-12-1106:251.0.3705.478303,104Mscorjit.dll
2003-12-1123:481.0.3705.4781,953,792Mscorlib.dll
2003-12-1106:1810,284Mscorlib.ldo
2003-12-1106:261.0.3705.4782,273,280Mscorsvr.dll
2003-12-1106:261.0.3705.4782,269,184Mscorwks.dll
2003-12-1107:101.0.3705.47820,480Perfcounter.dll
2002-08-2302:2315Smartnav.htm
2003-07-3000:048,728Smartnav.js
2003-12-1123:481.0.3705.4781,179,648System.data.dll
2003-12-1123:481.0.3705.4781,695,744System.design.dll
2003-12-1123:481.0.3705.4781,175,552System.dll
2003-12-1123:481.0.3705.478241,664System.messaging.dll
2003-12-1123:481.0.3705.478311,296System.runtime.remoting.dll
2003-12-1123:491.0.3705.478131,072System.runtime.serialization.formatters.soap.dll
2003-12-1123:481.0.3705.4781,200,128System.web.dll
2003-12-1123:481.0.3705.478507,904System.web.services.dll
2003-12-1123:501.0.3705.4781,994,752System.windows.forms.dll
2003-12-1107:2016,632System.windows.forms.ldo
2003-12-1107:151.0.3705.47857,344System.windows.forms.tlb
2003-12-1123:501.0.3705.4781,302,528System.xml.dll
2003-12-1123:471.0.3705.47832,768Tlbimp.exe
2003-06-1721:431,419Uninstallpersistsqlstate.sql
2003-09-0900:282,119Uninstallsqlstatetemplate.sql
2003-12-1123:471.0.3705.47865,536Wsdl.exe

핫픽스 세부 정보

이 핫픽스는 뷰 상태 오류 메시지에 더욱 많은 정보가 포함되도록 합니다. 이 핫픽스를 적용하면 뷰 상태 오류 메시지 제목이 "데이터가 유효한지 확인할 수 없습니다."와 같이 나타납니다. 새로운 오류 메시지 형식에서도 문제가 무엇인지 정확하게 설명하지는 않지만 이전의 메시지 형식보다는 많은 정보를 제공합니다.

참고 뷰 상태 데이터의 상태에 대한 더욱 자세한 정보를 얻으려면 타사의 뷰 상태 디코더를 통해 오류 메시지에 나타나는 뷰 상태 정보를 실행할 수 있습니다.

이 핫픽스는 HttpException 개체에 대해 InnerException 속성을 설정함으로써 Application_Error 메서드를 사용하여 근원적인 예외를 기록할 수 있도록 합니다. 모든 InnerException 속성 오류를 재귀적으로 기록하도록 하십시오.

이 핫픽스는 뷰 상태 오류에 대한 오류 메시지에 클라이언트와 관련된 다음의 특정 정보를 추가합니다.
  • IP 주소
  • 포트 번호
  • 사용자 에이전트
  • 뷰 상태의 값
  • Http 참조 페이지
  • 요청된 페이지의 경로
ASP.NET에서 뷰 상태 메시지 인증 코드(MAC)를 검사하는 중에 오류가 발생할 경우 이 핫픽스는 <machineKey> 설정을 확인하라는 스택 추적 메시지를 추가합니다. 또한 오류 메시지에는 뷰 상태 데이터를 동일 페이지로만 다시 게시할 수 있다는 내용도 포함됩니다.

deserialization 중에 오류가 발생할 경우 이 핫픽스는 LosFormater 토큰, _deserializationData 토큰 및 오류가 발생한 위치를 오류 메시지에 추가합니다.

대부분의 경우 뷰 상태 데이터가 잘리면 뷰 상태 기능은 FromBase64String 메서드에서 FormatException 오류가 발생하고 다음과 유사한 오류 메시지가 나타납니다.
Base-64 문자 배열의 길이가 잘못되었습니다.
하지만 뷰 상태 데이터가 잘리고 여전히 Base-64로 인코딩된 경우 코드에서 나중에 오류가 발생합니다.

이 핫픽스를 설치하기 전의 뷰 상태 오류 메시지

'/ViewState' 응용 프로그램에 서버 오류가 있습니다.
--------------------------------------------------------------------------------
이 페이지에 대한 viewstate가 잘못되었으며 손상되었을 수 있습니다.
설명: 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. 스택 추적을 검토하여 발생한 오류 및 코드에서 오류가 발생한 위치에 대한 자세한 정보를 확인하십시오.

예외 정보: System.Web.HttpException: 이 페이지에 대한 viewstate가 잘못되었으며 손상되었을 수 있습니다.

원본 오류:

현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 생성되었습니다. 아래의 예외 스택 추적을 사용하여 예외의 원인 및 위치 정보를 확인할 수 있습니다.

스택 추적:

[HttpException (0x80004005): 이 페이지에 대한 viewstate가 잘못되었으며 손상되었을 수 있습니다.]
System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +151
System.Web.UI.Page.LoadPageViewState() +18
System.Web.UI.Page.ProcessRequestMain() +423

이 핫픽스를 설치한 후의 뷰 상태 오류 메시지

'/ViewState' 응용 프로그램에 서버 오류가 있습니다.
--------------------------------------------------------------------------------

데이터가 유효한지 확인할 수 없습니다.
설명: 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. 스택 추적을 검토하여 발생한 오류 및 코드에서 오류가 발생한 위치에 대한 자세한 정보를 확인하십시오.

예외 정보: System.Web.HttpException: 데이터가 유효한지 확인할 수 없습니다.

원본 오류:

현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 생성되었습니다. 아래의 예외 스택 추적을 사용하여 예외의 원인 및 위치 정보를 확인할 수 있습니다.

스택 추적:

[HttpException (0x80004005): 데이터가 유효한지 확인할 수 없습니다.]
System.Web.Configuration.MachineKey.GetDecodedData(Byte[] buf, String strModifier) +866
System.Web.UI.LosFormatter.Deserialize(String input) +44

[HttpException (0x80004005): viewstate의 인증을 실패했습니다. 1) 클러스터인 경우 <machineKey> 구성을 편집하여 모든 서버가 동일한 validationKey 및 유효성 알고리즘을 사용하도록 하십시오. 클러스터에서는 AutoGenerate를 사용할 수 없습니다. 2) viewstate는 동일한 페이지로만 다시 게시할 수 있습니다. 3) 이 페이지에 대한 viewstate가 손상되었을 수 있습니다.]
System.Web.UI.LosFormatter.Deserialize(String input) +102
System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +101

[HttpException (0x80004005): 이 페이지에 대한 viewstate가 잘못되었으며 손상되었을 수 있습니다.
클라이언트 IP: 127.0.0.1
포트: 1095
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)
ViewState: dDwzNDM3NTkwMzg7dDw7bDxpPDEPGk8MT47PjtsPHQ8QDA8cDxwPGw8RGF0YUt
Http 참조 페이지: http://localhost/Connect2Access/WebForm1.aspx
경로: /connect2access/webform1.aspx.]
System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +435
System.Web.UI.Page.LoadPageViewState() +16
System.Web.UI.Page.ProcessRequestMain() +439
참고 이 예제 오류 메시지의 ViewState 값은 이 문서의 컨텍스트에 맞추기 위해 잘렸습니다.

현재 상태

Microsoft는 본 문서의 적용 대상 절에 나열한 제품에서 이 문제를 확인했습니다.

추가 정보

Microsoft 제품 업데이트를 설명하는 데 사용되는 용어에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
824684 Microsoft 소프트웨어 업데이트를 설명하는 데 사용되는 표준 용어에 대한 설명

뷰 상태 기능 설명

ASP는 상태 비저장입니다. 응용 프로그램이 서버에서 클라이언트로 왕복할 때마다 데이터는 본래 저장되지 않습니다. 웹 페이지가 서버에 게시될 때마다 페이지는 다시 만들어집니다. 이 작동 방식으로 인해 각 왕복 때마다 페이지 및 페이지의 컨트롤과 연관된 모든 정보는 잃게 됩니다. 예를 들어, 사용자가 텍스트 상자에 정보를 입력할 경우 브라우저 또는 클라이언트 장치에서 서버로 왕복할 때 이 정보는 없어집니다.

ASP.NET도 상태 비저장입니다. 하지만 ASP.NET에는 서버로 왕복하는 사이에 데이터를 보존하는 데 사용할 수 있는 뷰 상태라는 새로운 기능이 있습니다. 뷰 상태는 왕복 사이에 페이지의 속성 값 및 페이지의 모든 컨트롤 값을 자동으로 보존합니다. 뷰 상태 데이터는 페이지에서 숨김 필드로 유지 관리됩니다.

뷰 상태 기능을 사용하면 페이지가 다시 게시되는 왕복 사이에 페이지 특정 값을 저장할 수 있습니다. 예를 들어, 응용 프로그램에서 사용자 특정 정보를 유지 관리하는 경우 뷰 상태 기능을 사용하여 이 사용자 특정 정보를 저장할 수 있습니다. 사용자 특정 정보는 페이지에서 사용되지만 컨트롤의 일부가 아니어도 되는 정보입니다.

"요약" 절로 돌아가기

뷰 상태 MAC 기능 설명

뷰 상태 메시지 인증 코드(MAC)는 인증 구성표를 비밀 키와 함께 메시지에 적용할 때 만들어지는 인증 태그(체크섬이라고도 함)입니다. MAC은 동일한 키를 사용하여 계산 및 검사됩니다. 그러므로 MAC은 의도한 받는 사람만 검사할 수 있습니다. MAC은 SHA(Secure Hash Algorithm), MD5(Message Digest 5) 알고리즘 또는 DES(Data Encryption Standard) 알고리즘과 같은 다양한 암호화 기술 및 알고리즘을 사용하여 만들 수 있습니다.

뷰 상태 MAC 기능은 클라이언트가 악의적인 뷰 상태 데이터가 포함된 요청을 보내지 못하도록 하기 위해 고안되었습니다. 기본적으로 뷰 상태 MAC 기능은 Machine.config 파일의 enableViewStateMac="true" 플래그를 사용하여 설정됩니다.

발생하는 문제가 MAC과 관련이 있는지 여부를 확인하는 가장 간단한 방법은 이 기능을 해제하는 것입니다. 이렇게 하려면 enableViewStateMac 플래그를 false로 설정하십시오. 뷰 상태 오류가 더 이상 발생하지 않는다면 문제가 MAC과 관련이 있는 것입니다.

뷰 상태 MAC은 핫픽스 323744가 설치되기 이전의 Microsoft .NET Framework 1.0에서 다르게 적용됩니다. 이 문서에서 설명하고 있는 핫픽스(핫픽스 832183)에는 핫픽스 323744가 포함되어 있습니다. 해당 환경의 다른 모든 컴퓨터에도 독자적으로 또는 핫픽스 832183과 함께 핫픽스 323744를 설치하지 않을 경우 핫픽스 323744가 설치되지 않은 컴퓨터에서는 뷰 상태 데이터 오류가 발생합니다.

자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
323744 FIX: ASP.NET에서 "이 페이지에 대한 뷰 상태가 잘못되었으며 손상되었을 수 있습니다." 오류 메시지가 나타난다
328546 INFO: 서비스 팩 2 이후 .NET Framework ASP.NET 핫픽스 패키지




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 832183 - 마지막 검토: 2006년 4월 26일 수요일 - 수정: 2.3
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft .NET Framework 1.0
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Studio .NET (2002), Enterprise Architect Edition SP1
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Common Language Runtime (included with the .NET Framework) 1.0
  • Microsoft ASP.NET 1.0
키워드:?
kbqfe kbhotfixserver kbnetframe100presp3fix kbfix kbbug KB832183

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com