ViewStateException 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
뷰 상태를 로드할 수 없거나 그 유효성을 검사할 수 없을 때 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
- 상속
- 특성
- 구현
예제
다음 코드 예제에는 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) |