Sdílet prostřednictvím


ViewStateException Třída

Definice

Představuje výjimku, která se vyvolá, když nelze načíst nebo ověřit stav zobrazení. Tuto třídu nelze zdě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
ViewStateException
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í vlastnosti. 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ýjimka v rámci HttpException výjimky. Výjimku HttpException znovu vyvolá aplikace.

Třída ViewStateException ukládá informace o výjimce Message ve vlastnosti. Pokud má požadavek oprávnění pro přístup ServerVariables k vlastnosti, pak Message vlastnost obsahuje hodnoty vrácené z RemoteAddressvlastnosti , RemotePort, UserAgent, PersistedState, Referera Path vlastnosti; v opačném případě Message vlastnost obsahuje obecnou chybovou zprávu o stavu zobrazení.

Výjimkou stavu zobrazení může být chyba 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 pomocí identifikátoru 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 odesílá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

Name Description
ViewStateException()

Inicializuje novou instanci ViewStateException třídy.

Vlastnosti

Name Description
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, která je přiřazena ke 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 klient je aktuálně připojen k serveru.

Message

Získá ladicí informace o požadavku HTTP, který způsobil výjimku stavu zobrazení.

Path

Získá cestu požadavku HTTP, která způsobila 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

Name Description
Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetBaseException()

Při přepsání v odvozené třídě vrátí Exception to, že je původní 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 ViewStateException třídy serializovanými daty.

GetType()

Získá typ modulu runtime aktuální instance.

(Zděděno od Exception)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního 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

Name Description
SerializeObjectState
Zastaralé.

Nastane, když je výjimka serializována vytvořit objekt stavu výjimky, který obsahuje serializovaná data o výjimce.

(Zděděno od Exception)

Platí pro

Viz také