ViewStateException Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
- 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) |