次の方法で共有


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プロパティには、、RemotePortUserAgentRefererPersistedStateおよび Path の各プロパティからRemoteAddress返される値が含まれます。それ以外の場合、Messageプロパティには汎用のビューステート エラー メッセージが含まれます。

ビューステート例外は、メッセージ認証コード (MAC) 検証エラーの結果である可能性があります。 ページ属性 enableViewStateMac が に true設定されている場合、ビューステート情報は MAC 識別子でエンコードされます。 ビューステート情報がサーバーにポストバックされると、ページはエンコードを検証して、ユーザーによって変更されていないことを確認します。 ページがビューステート情報の MAC エンコードを検証できない場合は、オブジェクトを内部例外として使用して例外をViewStateExceptionスローHttpExceptionします。

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()

派生クラスでオーバーライドされた場合、それ以後に発生する 1 つ以上の例外の根本原因である Exception を返します。

(継承元 Exception)
GetHashCode()

既定のハッシュ関数として機能します。

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

シリアル化したデータを使用して、ViewStateException クラスの新しいインスタンスを初期化します。

GetType()

現在のインスタンスのランタイム型を取得します。

(継承元 Exception)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在の例外の文字列形式を作成して返します。

(継承元 Exception)

イベント

SerializeObjectState
古い.

例外がシリアル化され、例外に関するシリアル化されたデータを含む例外状態オブジェクトが作成されたときに発生します。

(継承元 Exception)

適用対象

こちらもご覧ください