ViewStateException 类

定义

表示当无法加载或验证视图状态时引发的异常。 此类不能被继承。

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 可以引发一个 HttpException 异常,该异常将 ViewStateException 对象作为内部异常。 该示例演示如何捕获 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 重新引发异常,由应用程序处理。

ViewStateException 将有关异常的信息存储在 属性中 Message 。 如果请求有权访问属性ServerVariables,则该Message属性包含从 RemoteAddress、、RemotePortUserAgentRefererPersistedStatePath 属性返回的值;否则,Message该属性包含一般视图状态错误消息。

视图状态异常可能是消息身份验证代码 (MAC) 验证错误的结果。 如果页面属性 enableViewStateMac 设置为 true,则使用 MAC 标识符对视图状态信息进行编码。 当视图状态信息发回到服务器时,页面会验证编码,以确保用户未更改该编码。 如果页面无法验证视图状态信息上的 MAC 编码,则会将对象引发异常HttpExceptionViewStateException作为内部异常。

要使 MAC 验证成功,在发送和接收视图状态信息时,必须通过同一键对其进行哈希处理。 在 Web 场中,应将每台服务器上的计算机密钥设置为通用密钥。

构造函数

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

获取引发当前异常的方法。

(继承自 Exception)
UserAgent

获取导致视图状态异常的 HTTP 请求的浏览器类型。

方法

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetBaseException()

当在派生类中重写时,返回 Exception,它是一个或多个并发的异常的根本原因。

(继承自 Exception)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetObjectData(SerializationInfo, StreamingContext)

用序列化数据初始化 ViewStateException 类的新实例。

GetType()

获取当前实例的运行时类型。

(继承自 Exception)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

创建并返回当前异常的字符串表示形式。

(继承自 Exception)

事件

SerializeObjectState
已过时.

当异常被序列化用来创建包含有关该异常的徐列出数据的异常状态对象时会出现该问题。

(继承自 Exception)

适用于

另请参阅