Condividi tramite


ViewStateException Classe

Definizione

Rappresenta l'eccezione generata quando lo stato di visualizzazione non può essere caricato o convalidato. Questa classe non può essere ereditata.

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
Ereditarietà
ViewStateException
Attributi
Implementazioni

Esempio

Nell'esempio di codice seguente viene illustrato come implementare un metodo che deserializza una stringa con codifica base64 e restituisce una ICollection raccolta di impostazioni delle proprietà. Il Deserialize metodo può generare un'eccezione HttpException che contiene un ViewStateException oggetto come eccezione interna. Nell'esempio viene illustrato come intercettare un'eccezione HttpException e recuperare le proprietà dall'oggetto 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

Commenti

Se si verifica un'eccezione quando la pagina carica le informazioni sullo stato di visualizzazione, la pagina crea un ViewStateException oggetto e la passa come eccezione interna all'interno di un'eccezione HttpException . L'eccezione HttpException viene generata nuovamente per essere gestita dall'applicazione.

La ViewStateException classe archivia informazioni sull'eccezione nella Message proprietà . Se la richiesta dispone dell'autorizzazione per accedere alla ServerVariables proprietà , la Message proprietà contiene i valori restituiti dalle RemoteAddressproprietà , RemotePortUserAgentRefererPersistedStatee Path . In caso contrario, la Message proprietà contiene un messaggio di errore generico dello stato di visualizzazione.

Un'eccezione dello stato di visualizzazione può essere il risultato di un errore di convalida mac (Message Authentication Codes). Se l'attributo enableViewStateMac della pagina è impostato su true, le informazioni sullo stato di visualizzazione vengono codificate con un identificatore MAC. Quando le informazioni sullo stato di visualizzazione vengono pubblicate nel server, la pagina verifica la codifica per assicurarsi che non sia stata modificata dall'utente. Se la pagina non è in grado di convalidare la codifica MAC nelle informazioni sullo stato di visualizzazione, genererà un'eccezione HttpException con l'oggetto ViewStateException come eccezione interna.

Affinché la convalida MAC abbia esito positivo, le informazioni sullo stato di visualizzazione devono essere hashate dalla stessa chiave quando viene inviata e ricevuta. All'interno di una Web farm, la chiave del computer in ogni server deve essere impostata su una chiave comune.

Costruttori

Nome Descrizione
ViewStateException()

Inizializza una nuova istanza della classe ViewStateException.

Proprietà

Nome Descrizione
Data

Ottiene una raccolta di coppie chiave/valore che forniscono informazioni aggiuntive definite dall'utente sull'eccezione.

(Ereditato da Exception)
HelpLink

Ottiene o imposta un collegamento al file della Guida associato a questa eccezione.

(Ereditato da Exception)
HResult

Ottiene o imposta HRESULT, valore numerico codificato assegnato a un'eccezione specifica.

(Ereditato da Exception)
InnerException

Ottiene l'istanza Exception che ha causato l'eccezione corrente.

(Ereditato da Exception)
IsConnected

Ottiene un valore che indica se il client è attualmente connesso al server.

Message

Ottiene informazioni di debug sulla richiesta HTTP che ha generato un'eccezione dello stato di visualizzazione.

Path

Ottiene il percorso della richiesta HTTP che ha generato un'eccezione dello stato di visualizzazione.

PersistedState

Ottiene il contenuto della stringa dello stato di visualizzazione che, durante la lettura, ha causato l'eccezione dello stato di visualizzazione.

Referer

Ottiene l'URL della pagina collegata alla pagina in cui si è verificata l'eccezione dello stato di visualizzazione.

RemoteAddress

Ottiene l'indirizzo IP della richiesta HTTP che ha generato un'eccezione dello stato di visualizzazione.

RemotePort

Ottiene il numero di porta della richiesta HTTP che ha generato un'eccezione dello stato di visualizzazione.

Source

Ottiene o imposta il nome dell'applicazione o dell'oggetto che causa l'errore.

(Ereditato da Exception)
StackTrace

Ottiene una rappresentazione di stringa dei fotogrammi immediati nello stack di chiamate.

(Ereditato da Exception)
TargetSite

Ottiene il metodo che genera l'eccezione corrente.

(Ereditato da Exception)
UserAgent

Ottiene il tipo di browser della richiesta HTTP che ha generato un'eccezione dello stato di visualizzazione.

Metodi

Nome Descrizione
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetBaseException()

Quando sottoposto a override in una classe derivata, restituisce l'oggetto Exception che rappresenta la causa radice di una o più eccezioni successive.

(Ereditato da Exception)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetObjectData(SerializationInfo, StreamingContext)

Inizializza una nuova istanza della ViewStateException classe con dati serializzati.

GetType()

Ottiene il tipo di runtime dell'istanza corrente.

(Ereditato da Exception)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ToString()

Crea e restituisce una rappresentazione di stringa dell'eccezione corrente.

(Ereditato da Exception)

Eventi

Nome Descrizione
SerializeObjectState
Obsoleti.

Si verifica quando viene serializzata un'eccezione per creare un oggetto stato dell'eccezione contenente dati serializzati sull'eccezione.

(Ereditato da Exception)

Si applica a

Vedi anche