ViewStateException クラス
アセンブリ: System.Web (system.web.dll 内)

<SerializableAttribute> _ Public NotInheritable Class ViewStateException Inherits Exception Implements ISerializable
[SerializableAttribute] public ref class ViewStateException sealed : public Exception, 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; }


System.Exception
System.Web.UI.ViewStateException


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からViewStateException クラスを検索する場合は、下記のリンクをクリックしてください。

- ViewStateException クラスのページへのリンク