ViewStateException Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje wyjątek zgłaszany, gdy nie można załadować ani zweryfikować stanu widoku. Klasa ta nie może być dziedziczona.
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
- Dziedziczenie
- Atrybuty
- Implementuje
Przykłady
Poniższy przykład kodu pokazuje, jak zaimplementować metodę, która deserializuje ciąg zakodowany w formacie base64 i zwraca ICollection kolekcję ustawień właściwości. Metoda Deserialize może zgłosić HttpException wyjątek zawierający ViewStateException obiekt jako wyjątek wewnętrzny. W przykładzie pokazano, jak można przechwycić HttpException wyjątek i pobrać właściwości z ViewStateException obiektu.
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
Uwagi
Jeśli wystąpi wyjątek, gdy strona ładuje informacje o stanie widoku, strona tworzy ViewStateException obiekt i przekazuje go jako wyjątek wewnętrzny w HttpException ramach wyjątku. Wyjątek HttpException jest ponownie zgłaszany do obsługi przez aplikację.
Klasa ViewStateException przechowuje informacje o wyjątku Message we właściwości. Jeśli żądanie ma uprawnienie dostępu do ServerVariables właściwości, Message właściwość zawiera wartości zwracane z RemoteAddresswłaściwości , , RemotePort, PersistedStateUserAgent, , RefereriPath; w przeciwnym razie Message właściwość zawiera ogólny komunikat o błędzie widoku stanu.
Wyjątek stanu widoku może być wynikiem błędu weryfikacji kodów uwierzytelniania komunikatów (MAC). Jeśli atrybut enableViewStateMac
strony ma wartość true
, informacje o stanie widoku są kodowane przy użyciu identyfikatora MAC. Gdy informacje o stanie widoku są publikowane z powrotem na serwerze, strona weryfikuje kodowanie, aby upewnić się, że nie została zmieniona przez użytkownika. Jeśli strona nie może zweryfikować kodowania MAC w informacjach o stanie widoku, zgłosi HttpException wyjątek z ViewStateException obiektem jako wyjątek wewnętrzny.
Aby walidacja mac powiodła się, informacje o stanie widoku muszą zostać skróty przez ten sam klucz po wysłaniu i odebraniu. W farmie sieci Web klucz maszyny na każdym serwerze powinien być ustawiony na wspólny klucz.
Konstruktory
ViewStateException() |
Inicjuje nowe wystąpienie klasy ViewStateException. |
Właściwości
Data |
Pobiera kolekcję par klucz/wartość, które zapewniają dodatkowe informacje zdefiniowane przez użytkownika dotyczące wyjątku. (Odziedziczone po Exception) |
HelpLink |
Pobiera lub ustawia link do pliku pomocy skojarzonego z tym wyjątkiem. (Odziedziczone po Exception) |
HResult |
Pobiera lub ustawia HRESULT, zakodowaną wartość liczbową przypisaną do określonego wyjątku. (Odziedziczone po Exception) |
InnerException |
Exception Pobiera wystąpienie, które spowodowało bieżący wyjątek. (Odziedziczone po Exception) |
IsConnected |
Pobiera wartość wskazującą, czy klient jest obecnie połączony z serwerem. |
Message |
Pobiera informacje o debugowaniu dotyczące żądania HTTP, które spowodowało wyjątek stanu widoku. |
Path |
Pobiera ścieżkę żądania HTTP, które spowodowało wyjątek stanu widoku. |
PersistedState |
Pobiera zawartość ciągu stanu widoku, który podczas odczytu spowodował wyjątek stanu widoku. |
Referer |
Pobiera adres URL strony połączonej ze stroną, na której wystąpił wyjątek stanu widoku. |
RemoteAddress |
Pobiera adres IP żądania HTTP, który spowodował wyjątek stanu widoku. |
RemotePort |
Pobiera numer portu żądania HTTP, który spowodował wyjątek stanu widoku. |
Source |
Pobiera lub ustawia nazwę aplikacji lub obiektu, który powoduje błąd. (Odziedziczone po Exception) |
StackTrace |
Pobiera reprezentację ciągu natychmiastowych ramek w stosie wywołań. (Odziedziczone po Exception) |
TargetSite |
Pobiera metodę, która zgłasza bieżący wyjątek. (Odziedziczone po Exception) |
UserAgent |
Pobiera typ przeglądarki żądania HTTP, który spowodował wyjątek stanu widoku. |
Metody
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetBaseException() |
W przypadku zastąpienia w klasie pochodnej zwraca Exception główną przyczynę co najmniej jednego kolejnego wyjątku. (Odziedziczone po Exception) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetObjectData(SerializationInfo, StreamingContext) |
Inicjuje nowe wystąpienie klasy ViewStateException z zserializowanymi danymi. |
GetType() |
Pobiera typ środowiska uruchomieniowego bieżącego wystąpienia. (Odziedziczone po Exception) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Tworzy i zwraca reprezentację ciągu bieżącego wyjątku. (Odziedziczone po Exception) |
Zdarzenia
SerializeObjectState |
Przestarzałe.
Występuje, gdy wyjątek jest serializowany w celu utworzenia obiektu stanu wyjątku zawierającego serializowane dane o wyjątku. (Odziedziczone po Exception) |