ViewStateException クラス

定義

ビューステートの読み込みまたは検証ができない場合にスローされる例外を表します。Represents the exception that is thrown when the view state cannot be loaded or validated. このクラスは継承できません。This class cannot be inherited.

public ref class ViewStateException sealed : Exception
[System.Serializable]
public sealed class ViewStateException : Exception
type ViewStateException = class
    inherit Exception
    interface ISerializable
Public NotInheritable Class ViewStateException
Inherits Exception
継承
ViewStateException
属性
実装

次のコード例は、base64 でエンコードされた文字列を逆シリアル化し、プロパティICollection設定のコレクションを返すメソッドを実装する方法を示しています。The following code example demonstrates how to implement a method that deserializes a base64-encoded string and returns an ICollection collection of property settings. メソッドDeserializeは、内部例外HttpExceptionとしてオブジェクトViewStateExceptionを含む例外をスローできます。The Deserialize method can throw an HttpException exception that contains a ViewStateException object as an inner exception. この例は、 HttpException例外をキャッチし、 ViewStateExceptionオブジェクトからプロパティを取得する方法を示しています。The example shows how you can catch an HttpException exception and retrieve the properties from the ViewStateException object.

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内部例外として例外内に渡します。If an exception occurs when the page loads the view-state information, the page creates a ViewStateException object and passes it as an inner exception within an HttpException exception. 例外HttpExceptionは、アプリケーションによって処理されるように再スローされます。The HttpException exception is re-thrown to be handled by the application.

クラスViewStateExceptionは、例外に関する情報をMessageプロパティに格納します。The ViewStateException class stores information about the exception in the Message property. ServerVariables要求にプロパティへのアクセス許可がある場合、プロパティにMessageRemoteAddressReferer PersistedState RemotePort UserAgent、、、、、およびPathから返された値が含まれます。属性それ以外のMessage場合、プロパティには汎用ビューステートエラーメッセージが含まれます。If the request has permission to access the ServerVariables property, then the Message property contains the values returned from the RemoteAddress, RemotePort, UserAgent, PersistedState, Referer, and Path properties; otherwise, the Message property contains a generic view-state error message.

ビューステート例外は、メッセージ認証コード (MAC) 検証エラーの結果である可能性があります。A view-state exception can be the result of a Message Authentication Codes (MAC) validation error. Page 属性enableViewStateMacがにtrue設定されている場合、ビューステート情報は MAC 識別子を使用してエンコードされます。If the page attribute enableViewStateMac is set to true, view-state information is encoded with a MAC identifier. ビューステートの情報がサーバーにポストバックされると、ページはエンコードを検証して、ユーザーによって変更されていないことを確認します。When the view-state information is posted back to the server, the page verifies the encoding to ensure that it has not been altered by the user. ページで、ビューステート情報の MAC エンコードを検証できない場合、内部例外としHttpExceptionてオブジェクトのViewStateException例外がスローされます。If the page cannot validate the MAC encoding on the view-state information, it will throw an HttpException exception with the ViewStateException object as an inner exception.

MAC の検証を成功させるには、ビューステートの情報を送受信するときに同じキーでハッシュする必要があります。For MAC validation to succeed, the view-state information must be hashed by the same key when it is sent and received. Web ファーム内では、各サーバーのマシンキーを共通キーに設定する必要があります。Within a Web farm, the machine key on each server should be set to a common key.

コンストラクター

ViewStateException()

ViewStateException クラスの新しいインスタンスを初期化します。Initializes a new instance of the ViewStateException class.

プロパティ

Data

例外に関する追加のユーザー定義情報を提供する、キー/値ペアのコレクションを取得します。Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(継承元 Exception)
HelpLink

この例外に関連付けられているヘルプ ファイルへのリンクを取得または設定します。Gets or sets a link to the help file associated with this exception.

(継承元 Exception)
HResult

特定の例外に割り当てられているコード化数値である HRESULT を取得または設定します。Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(継承元 Exception)
InnerException

現在の例外の原因となる Exception インスタンスを取得します。Gets the Exception instance that caused the current exception.

(継承元 Exception)
IsConnected

クライアントがサーバーに現在接続されているかどうかを示す値を取得します。Gets a value indicating whether the client is currently connected to the server.

Message

ビューステート例外を発生させた HTTP 要求に関するデバッグ情報を取得します。Gets debugging information about the HTTP request that resulted in a view-state exception.

Path

ビューステート例外を発生させた HTTP 要求のパスを取得します。Gets the path of the HTTP request that resulted in a view-state exception.

PersistedState

読み込み時にビューステート例外を発生させたビューステート文字列の内容を取得します。Gets the contents of the view-state string that, when read, caused the view-state exception.

Referer

ビューステート例外が発生したページにリンクしているページの URL を取得します。Gets the URL of the page that linked to the page where the view-state exception occurred.

RemoteAddress

ビューステート例外を発生させた HTTP 要求の IP アドレスを取得します。Gets the IP address of the HTTP request that resulted in a view-state exception.

RemotePort

ビューステート例外を発生させた HTTP 要求のポート番号を取得します。Gets the port number of the HTTP request that resulted in a view-state exception.

Source

エラーの原因となるアプリケーションまたはオブジェクトの名前を取得または設定します。Gets or sets the name of the application or the object that causes the error.

(継承元 Exception)
StackTrace

呼び出し履歴で直前のフレームの文字列形式を取得します。Gets a string representation of the immediate frames on the call stack.

(継承元 Exception)
TargetSite

現在の例外がスローされたメソッドを取得します。Gets the method that throws the current exception.

(継承元 Exception)
UserAgent

ビューステート例外を発生させた HTTP 要求のブラウザーの種類を取得します。Gets the browser type of the HTTP request that resulted in a view-state exception.

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetBaseException()

派生クラスでオーバーライドされた場合、それ以後に発生する 1 つ以上の例外の主要な原因である Exception を返します。When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(継承元 Exception)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetObjectData(SerializationInfo, StreamingContext)

シリアル化したデータを使用して、ViewStateException クラスの新しいインスタンスを初期化します。Initializes a new instance of the ViewStateException class with serialized data.

GetType()

現在のインスタンスのランタイム型を取得します。Gets the runtime type of the current instance.

(継承元 Exception)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
ToString()

現在の例外の文字列形式を作成して返します。Creates and returns a string representation of the current exception.

(継承元 Exception)

イベント

SerializeObjectState

例外がシリアル化され、例外に関するシリアル化されたデータを含む例外状態オブジェクトが作成されたときに発生します。Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(継承元 Exception)

適用対象

こちらもご覧ください