ViewStateException Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje výjimku, která se vyvolá, když stav zobrazení nelze načíst nebo ověřit. Tuto třídu nelze dědit.
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
- Dědičnost
- Atributy
- Implementuje
Příklady
Následující příklad kódu ukazuje, jak implementovat metodu, která deserializuje řetězec s kódováním base64 a vrací ICollection kolekci nastavení vlastností. Metoda Deserialize může vyvolat HttpException výjimku, která obsahuje ViewStateException objekt jako vnitřní výjimku. Příklad ukazuje, jak můžete zachytit HttpException výjimku a načíst vlastnosti z objektu 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
Poznámky
Pokud dojde k výjimce, když stránka načte informace o stavu zobrazení, stránka vytvoří ViewStateException objekt a předá ho jako vnitřní výjimku v rámci HttpException výjimky. Výjimka HttpException se znovu vyvolá, aby ji aplikace zpracovávala.
Třída ViewStateException ukládá informace o výjimce ve Message vlastnosti. Pokud má požadavek oprávnění pro přístup ServerVariables k vlastnosti, Message vlastnost obsahuje hodnoty vrácené z RemoteAddress, RemotePort, , UserAgent, PersistedStateReferera Path vlastnosti; jinak Message vlastnost obsahuje obecnou chybovou zprávu stavu zobrazení.
Výjimka stavu zobrazení může být výsledkem chyby ověření kódů MAC (Message Authentication Codes). Pokud je atribut enableViewStateMac
stránky nastavený na true
, informace o stavu zobrazení jsou kódovány identifikátorem MAC. Když se informace o stavu zobrazení publikují zpět na server, stránka ověří kódování, aby se zajistilo, že uživatel ho nezměnil. Pokud stránka nemůže ověřit kódování MAC v informacích o stavu zobrazení, vyvolá HttpException výjimku s ViewStateException objektem jako vnitřní výjimkou.
Aby bylo ověření MAC úspěšné, musí být informace o stavu zobrazení hashovány stejným klíčem při odeslání a přijetí. Ve webové farmě by měl být klíč počítače na každém serveru nastavený na společný klíč.
Konstruktory
ViewStateException() |
Inicializuje novou instanci ViewStateException třídy. |
Vlastnosti
Data |
Získá kolekci párů klíč/hodnota, které poskytují další uživatelem definované informace o výjimce. (Zděděno od Exception) |
HelpLink |
Získá nebo nastaví odkaz na soubor nápovědy přidružený k této výjimce. (Zděděno od Exception) |
HResult |
Získá nebo nastaví HRESULT, kódovanou číselnou hodnotu přiřazenou konkrétní výjimce. (Zděděno od Exception) |
InnerException |
Exception Získá instanci, která způsobila aktuální výjimku. (Zděděno od Exception) |
IsConnected |
Získá hodnotu určující, zda je klient aktuálně připojen k serveru. |
Message |
Získá informace o ladění požadavku HTTP, který způsobil výjimku stavu zobrazení. |
Path |
Získá cestu požadavku HTTP, který způsobil výjimku stavu zobrazení. |
PersistedState |
Získá obsah řetězce stavu zobrazení, který při čtení způsobil výjimku stavu zobrazení. |
Referer |
Získá adresu URL stránky, která je propojená se stránkou, kde došlo k výjimce stavu zobrazení. |
RemoteAddress |
Získá IP adresu požadavku HTTP, který způsobil výjimku stavu zobrazení. |
RemotePort |
Získá číslo portu požadavku HTTP, který způsobil výjimku stavu zobrazení. |
Source |
Získá nebo nastaví název aplikace nebo objektu, který způsobuje chybu. (Zděděno od Exception) |
StackTrace |
Získá řetězcové znázornění okamžitých rámců v zásobníku volání. (Zděděno od Exception) |
TargetSite |
Získá metodu, která vyvolá aktuální výjimku. (Zděděno od Exception) |
UserAgent |
Získá typ prohlížeče požadavku HTTP, který způsobil výjimku stavu zobrazení. |
Metody
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetBaseException() |
Při přepsání v odvozené třídě vrátí Exception hodnotu, která je hlavní příčinou jedné nebo více následných výjimek. (Zděděno od Exception) |
GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
GetObjectData(SerializationInfo, StreamingContext) |
Inicializuje novou instanci třídy ViewStateException se serializovanými daty. |
GetType() |
Získá typ modulu runtime aktuální instance. (Zděděno od Exception) |
MemberwiseClone() |
Vytvoří použádnou kopii aktuálního souboru Object. (Zděděno od Object) |
ToString() |
Vytvoří a vrátí řetězcovou reprezentaci aktuální výjimky. (Zděděno od Exception) |
událost
SerializeObjectState |
Zastaralé.
Nastane, když je výjimka serializována k vytvoření objektu stavu výjimky, který obsahuje serializovaná data o výjimce. (Zděděno od Exception) |