Condividi tramite


ViewStateException Classe

Definizione

Rappresenta l'eccezione generata quando lo stato di visualizzazione non può essere caricato o convalidato. La 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 di proprietà. Il Deserialize metodo può generare un'eccezione HttpException che contiene un ViewStateException oggetto come eccezione interna. Nell'esempio viene illustrato come rilevare 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à , RemotePort, UserAgent, PersistedState, Referere 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

ViewStateException()

Inizializza una nuova istanza della classe ViewStateException.

Proprietà

Data

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

(Ereditato da Exception)
HelpLink

Ottiene o imposta un collegamento al file della Guida associato all'eccezione.

(Ereditato da Exception)
HResult

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

(Ereditato da Exception)
InnerException

Ottiene l'istanza di 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, dopo la lettura, ha generato 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'oggetto o dell'applicazione che ha generato l'errore.

(Ereditato da Exception)
StackTrace

Ottiene una rappresentazione di stringa dei frame 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

Equals(Object)

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

(Ereditato da Object)
GetBaseException()

Quando ne viene eseguito l'override in una classe derivata, restituisce l'Exception che è 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 classe ViewStateException con dati serializzati.

GetType()

Ottiene il tipo di runtime dell'istanza corrente.

(Ereditato da Exception)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

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

(Ereditato da Exception)

Eventi

SerializeObjectState
Obsoleti.

Si verifica quando un'eccezione viene serializzata per creare un oggetto di stato eccezione contenente i dati serializzati relativi all'eccezione.

(Ereditato da Exception)

Si applica a

Vedi anche