ViewStateException クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ビューステートの読み込みまたは検証ができない場合にスローされる例外を表します。 このクラスは継承できません。
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
- 継承
- 属性
- 実装
例
次のコード例では、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プロパティには、、RemotePort、UserAgentRefererPersistedStateおよび 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) |