ViewStateExceptionとは? わかりやすく解説

ViewStateException クラス

メモ : このクラスは、.NET Framework version 2.0 で新しく追加されたものです。

ビューステートの読み込みまたは検証ができない場合にスローされる例外を表します。このクラスは継承できません。

名前空間: System.Web.UI
アセンブリ: System.Web (system.web.dll 内)
構文構文

<SerializableAttribute> _
Public NotInheritable Class
 ViewStateException
    Inherits Exception
    Implements ISerializable
Dim instance As ViewStateException
[SerializableAttribute] 
public sealed class ViewStateException : Exception,
 ISerializable
[SerializableAttribute] 
public ref class ViewStateException sealed
 : public Exception, ISerializable
/** @attribute SerializableAttribute() */ 
public final class ViewStateException extends
 Exception implements ISerializable
SerializableAttribute 
public final class ViewStateException extends
 Exception implements ISerializable
解説解説

ページにビューステート情報が読み込まれるときに例外が発生した場合、ViewStateException オブジェクトが作成され、HttpException 例外内の内部例外として渡されます。HttpException 例外は再スローされ、アプリケーションにより処理されます。

ViewStateException クラスは、Message プロパティの例外に関する情報を格納します。ServerVariables プロパティにアクセスするためのアクセス許可を要求が持っている場合、Message プロパティには、RemoteAddress、RemotePort、UserAgent、PersistedState、Referer、および Path の各プロパティから返された値が設定されます。それ以外の場合、Message プロパティには一般的なビューステート エラー メッセージが設定されます。

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

MAC 検証が成功するには、送信時と受信時に同じキーを使ってビューステート情報をハッシュする必要があります。Web ファーム内では、各サーバーのマシン キーを共通キーに設定する必要があります。

使用例使用例

base64 エンコードされた文字列を逆シリアル化して、プロパティ設定の ICollection コレクションを返すメソッドの実装方法を次のコード例で示します。Deserialize メソッドは、ViewStateException オブジェクトを内部例外として持つ HttpException 例外をスローできます。この例では、HttpException 例外をキャッチして、ViewStateException オブジェクトからプロパティを取得する方法を示します。

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
   
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;
}
.NET Framework のセキュリティ.NET Framework のセキュリティ
継承階層継承階層
System.Object
   System.Exception
    System.Web.UI.ViewStateException
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
ViewStateException メンバ
System.Web.UI 名前空間
MachineKeySection
その他の技術情報
@ Page

ViewStateException コンストラクタ


ViewStateException プロパティ


パブリック プロパティパブリック プロパティ

( プロテクト プロパティ も参照)
  名前 説明
パブリック プロパティ Data  例外に関する追加のユーザー定義情報を提供するキー/値ペアのコレクションを取得します。 ( Exception から継承されます。)
パブリック プロパティ HelpLink  例外に関連付けられているヘルプ ファイルへのリンクを取得または設定します。 ( 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 要求のブラウザの種類を取得します。
プロテクト プロパティプロテクト プロパティ
  名前 説明
プロテクト プロパティ HResult  特定の例外に割り当てられているコード化数値である HRESULT を取得または設定します。 ( Exception から継承されます。)
参照参照

関連項目

ViewStateException クラス
System.Web.UI 名前空間
MachineKeySection

その他の技術情報

@ Page

ViewStateException メソッド


パブリック メソッドパブリック メソッド

プロテクト メソッドプロテクト メソッド
参照参照

関連項目

ViewStateException クラス
System.Web.UI 名前空間
MachineKeySection

その他の技術情報

@ Page

ViewStateException メンバ

ビューステートの読み込みまたは検証ができない場合にスローされる例外を表します。このクラスは継承できません。

ViewStateException データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド ViewStateException ViewStateException クラスの新しいインスタンスを初期化します。
パブリック プロパティパブリック プロパティ
( プロテクト プロパティ も参照)
  名前 説明
パブリック プロパティ Data  例外に関する追加のユーザー定義情報を提供するキー/値ペアのコレクションを取得します。(Exception から継承されます。)
パブリック プロパティ HelpLink  例外に関連付けられているヘルプ ファイルへのリンクを取得または設定します。(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 要求のブラウザの種類を取得します。
プロテクト プロパティプロテクト プロパティ
  名前 説明
プロテクト プロパティ HResult  特定の例外に割り当てられているコード化数値である HRESULT を取得または設定します。(Exception から継承されます。)
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

ViewStateException クラス
System.Web.UI 名前空間
MachineKeySection

その他の技術情報

@ Page



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「ViewStateException」の関連用語

ViewStateExceptionのお隣キーワード

   

英語⇒日本語
日本語⇒英語
   



ViewStateExceptionのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS