다음을 통해 공유


ViewStateException 클래스

정의

뷰 상태를 로드할 수 없거나 그 유효성을 검사할 수 없을 때 throw되는 예외를 나타냅니다. 이 클래스는 상속될 수 없습니다.

public ref class ViewStateException sealed : Exception
[System.Serializable]
public sealed class ViewStateException : Exception
[<System.Serializable>]
type ViewStateException = class
    inherit Exception
    interface ISerializable
Public NotInheritable Class ViewStateException
Inherits Exception
상속
ViewStateException
특성
구현

예제

다음 코드 예제에는 base64로 인코딩된 문자열을 역직렬화하 고 반환 하는 메서드를 구현 하는 방법을 보여 줍니다.는 ICollection 속성 설정의 컬렉션입니다. 합니다 Deserialize 메서드가 throw 할 수는 HttpException 포함 하는 예외를 ViewStateException 개체를 내부 예외로 합니다. 예제에서는 어떻게 catch 할 수 있습니다는 HttpException 예외에서 속성을 검색 하 고는 ViewStateException 개체입니다.

private ICollection LoadControlProperties(string serializedProperties)
{

    ICollection controlProperties = null;

    // Create an ObjectStateFormatter to deserialize the properties.
    ObjectStateFormatter formatter = new ObjectStateFormatter();

    try
    {
        // Call the Deserialize method.
        controlProperties = (ArrayList)formatter.Deserialize(serializedProperties);
    }
    catch (HttpException e)
    {
        ViewStateException vse = (ViewStateException)e.InnerException;
        String logMessage;

        logMessage = "ViewStateException. Path: " + vse.Path + Environment.NewLine;
        logMessage += "PersistedState: " + vse.PersistedState + Environment.NewLine;
        logMessage += "Referer: " + vse.Referer + Environment.NewLine;
        logMessage += "UserAgent: " + vse.UserAgent + Environment.NewLine;

        LogEvent(logMessage);

        if (vse.IsConnected)
        {
            HttpContext.Current.Response.Redirect("ErrorPage.aspx");
        }
        else
        {
            throw e;
        }
    }
    return controlProperties;
}
Private Function LoadControlProperties(ByVal serializedProperties As String) As ICollection

    Dim controlProperties As ICollection = Nothing

    ' Create an ObjectStateFormatter to deserialize the properties.
    Dim formatter As New ObjectStateFormatter()

    Try
        ' Call the Deserialize method.
        controlProperties = CType(formatter.Deserialize(serializedProperties), ArrayList)
    Catch e As HttpException
        Dim vse As ViewStateException
        Dim logMessage As String

        vse = e.InnerException

        logMessage = "ViewStateException. Path: " + vse.Path + Environment.NewLine
        logMessage += "PersistedState: " + vse.PersistedState + Environment.NewLine
        logMessage += "Referer: " + vse.Referer + Environment.NewLine
        logMessage += "UserAgent: " + vse.UserAgent + Environment.NewLine

        LogEvent(logMessage)

        If (vse.IsConnected) Then
            HttpContext.Current.Response.Redirect("ErrorPage.aspx")
        Else
            Throw e
        End If
    End Try
    Return controlProperties
End Function 'LoadControlProperties

설명

페이지 뷰 상태 정보를 로드할 때 예외가 발생 하는 경우 페이지를 만듭니다는 ViewStateException 개체 및 내에서 내부 예외로 전달는 HttpException 예외입니다. HttpException 예외 다시 throw 애플리케이션에서 처리 됩니다.

합니다 ViewStateException 예외에 대 한 정보를 저장 하는 클래스는 Message 속성입니다. 요청에 액세스할 수 있는 권한이 있으면를 ServerVariables 속성을 해당 Message 속성에서 반환 된 값이 포함 합니다 RemoteAddress, RemotePort, UserAgent, PersistedState, Referer, 및 Path 속성 그렇지 않은 경우는 Message 속성 일반 뷰 상태 오류 메시지를 포함 합니다.

뷰 상태 예외 메시지 인증 코드 (MAC) 유효성 검사 오류의 결과일 수 있습니다. 하는 경우 페이지 특성 enableViewStateMac 로 설정 된 true를 뷰 상태 정보를 MAC 식별자를 사용 하 여 인코딩됩니다. 뷰 상태 정보를 서버에 다시 게시 되 면 페이지는 해당 사용자가 변경 되지 않았음을 확인 하는 인코딩 확인 합니다. 페이지 뷰 상태 정보를 MAC 인코딩을 확인할 수 없습니다, 하는 경우 throw 됩니다는 HttpException 사용 하 여 예외를 ViewStateException 개체를 내부 예외로 합니다.

유효성 검사 성공을 위해 MAC 보내고 받을 때 동일한 키로 뷰 상태 정보를 해시 해야 합니다. 웹 팜에서 각 서버에서 컴퓨터 키를 공용 키로 설정 되어야 합니다.

생성자

ViewStateException()

ViewStateException 클래스의 새 인스턴스를 초기화합니다.

속성

Data

예외에 대한 사용자 정의 정보를 추가로 제공하는 키/값 쌍 컬렉션을 가져옵니다.

(다음에서 상속됨 Exception)
HelpLink

이 예외와 연결된 도움말 파일에 대한 링크를 가져오거나 설정합니다.

(다음에서 상속됨 Exception)
HResult

특정 예외에 할당된 코드화된 숫자 값인 HRESULT를 가져오거나 설정합니다.

(다음에서 상속됨 Exception)
InnerException

현재 예외를 발생시킨 Exception 인스턴스를 가져옵니다.

(다음에서 상속됨 Exception)
IsConnected

클라이언트가 현재 서버에 연결되어 있는지 여부를 나타내는 값을 가져옵니다.

Message

뷰 상태 예외를 발생시킨 HTTP 요청에 대한 디버깅 정보를 가져옵니다.

Path

뷰 상태 예외를 발생시킨 HTTP 요청의 경로를 가져옵니다.

PersistedState

읽을 때 뷰 상태 예외를 발생시킨 뷰 상태 문자열의 내용을 가져옵니다.

Referer

뷰 상태 예외가 발생한 페이지로 연결되는 페이지 URL을 가져옵니다.

RemoteAddress

뷰 상태 예외를 발생시킨 HTTP 요청의 IP 주소를 가져옵니다.

RemotePort

뷰 상태 예외를 발생시킨 HTTP 요청의 포트 번호를 가져옵니다.

Source

오류를 발생시키는 애플리케이션 또는 개체의 이름을 가져오거나 설정합니다.

(다음에서 상속됨 Exception)
StackTrace

호출 스택의 직접 실행 프레임 문자열 표현을 가져옵니다.

(다음에서 상속됨 Exception)
TargetSite

현재 예외를 throw하는 메서드를 가져옵니다.

(다음에서 상속됨 Exception)
UserAgent

뷰 상태 예외를 발생시킨 HTTP 요청의 브라우저 종류를 가져옵니다.

메서드

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetBaseException()

파생 클래스에서 재정의된 경우 하나 이상의 후속 예외의 근본 원인이 되는 Exception 을 반환합니다.

(다음에서 상속됨 Exception)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetObjectData(SerializationInfo, StreamingContext)

serialize된 데이터를 사용하여 ViewStateException 클래스의 새 인스턴스를 초기화합니다.

GetType()

현재 인스턴스의 런타임 형식을 가져옵니다.

(다음에서 상속됨 Exception)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToString()

현재 예외에 대한 문자열 표현을 만들고 반환합니다.

(다음에서 상속됨 Exception)

이벤트

SerializeObjectState
사용되지 않습니다.

예외에 대한 serialize된 데이터가 들어 있는 예외 상태 개체가 만들어지도록 예외가 serialize될 때 발생합니다.

(다음에서 상속됨 Exception)

적용 대상

추가 정보