Поделиться через


ViewStateException Класс

Определение

Представляет исключение, которое возникает, когда состояние представления не может быть загружено или проверено. Этот класс не может быть унаследован.

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
Наследование
ViewStateException
Атрибуты
Реализации

Примеры

В следующем примере кода показано, как реализовать метод, который десериализирует строку в кодировке Base64 и возвращает коллекцию ICollection параметров свойств. Метод Deserialize может вызвать HttpException исключение, содержащее ViewStateException объект в качестве внутреннего исключения. В примере показано, как перехватывать HttpException исключение и извлекать свойства из 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

Комментарии

Если исключение возникает при загрузке сведений о состоянии представления, страница создает ViewStateException объект и передает его в качестве внутреннего исключения в пределах HttpException исключения. Исключение HttpException создается повторно для обработки приложением.

Класс ViewStateException сохраняет сведения об исключении в свойстве Message . Если запрос имеет разрешение на доступ ServerVariables к свойству, то Message свойство содержит значения, возвращаемые из RemoteAddress, RemotePort, , UserAgentRefererPersistedStateи Path свойств; в противном случае Message свойство содержит сообщение об ошибке универсального состояния представления.

Исключение состояния представления может быть результатом ошибки проверки кодов проверки сообщений (MAC). Если для атрибута enableViewStateMac страницы задано trueзначение, сведения о состоянии представления кодируются с идентификатором MAC. Когда сведения о состоянии представления публикуются обратно на сервер, страница проверяет кодировку, чтобы убедиться, что она не была изменена пользователем. Если страница не может проверить кодировку MAC в сведениях о состоянии представления, она вызовет HttpException исключение с ViewStateException объектом в качестве внутреннего исключения.

Для успешной проверки MAC сведения о состоянии представления должны быть хэшированы тем же ключом при отправке и получении. В веб-ферме ключ компьютера на каждом сервере должен иметь общий ключ.

Конструкторы

Имя Описание
ViewStateException()

Инициализирует новый экземпляр класса ViewStateException.

Свойства

Имя Описание
Data

Возвращает коллекцию пар "ключ-значение", которые предоставляют дополнительные пользовательские сведения об исключении.

(Унаследовано от Exception)
HelpLink

Возвращает или задает ссылку на файл справки, связанный с этим исключением.

(Унаследовано от Exception)
HResult

Возвращает или задает HRESULT, закодированное числовое значение, назначенное определенному исключению.

(Унаследовано от Exception)
InnerException

Exception Возвращает экземпляр, вызвавшего текущее исключение.

(Унаследовано от Exception)
IsConnected

Возвращает значение, указывающее, подключен ли клиент к серверу.

Message

Получает сведения об отладке HTTP-запроса, который привел к исключению состояния представления.

Path

Возвращает путь HTTP-запроса, который привел к исключению состояния представления.

PersistedState

Возвращает содержимое строки состояния представления, которая при чтении вызвала исключение состояния представления.

Referer

Получает URL-адрес страницы, связанной с страницей, в которой произошло исключение состояния представления.

RemoteAddress

Возвращает IP-адрес HTTP-запроса, который привел к исключению состояния представления.

RemotePort

Возвращает номер порта HTTP-запроса, который привел к исключению состояния представления.

Source

Возвращает или задает имя приложения или объекта, вызывающего ошибку.

(Унаследовано от Exception)
StackTrace

Возвращает строковое представление непосредственных кадров в стеке вызовов.

(Унаследовано от Exception)
TargetSite

Возвращает метод, который вызывает текущее исключение.

(Унаследовано от Exception)
UserAgent

Возвращает тип браузера HTTP-запроса, который привел к исключению состояния представления.

Методы

Имя Описание
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetBaseException()

При переопределении в производном классе возвращает Exception первопричину одного или нескольких последующих исключений.

(Унаследовано от Exception)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetObjectData(SerializationInfo, StreamingContext)

Инициализирует новый экземпляр ViewStateException класса сериализованными данными.

GetType()

Возвращает тип среды выполнения текущего экземпляра.

(Унаследовано от Exception)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Создает и возвращает строковое представление текущего исключения.

(Унаследовано от Exception)

События

Имя Описание
SerializeObjectState
Устаревшие..

Происходит при сериализации исключения для создания объекта состояния исключения, содержащего сериализованные данные об исключении.

(Унаследовано от Exception)

Применяется к

См. также раздел