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
- Наследование
- Атрибуты
- Реализации
Примеры
В следующем примере кода показано, как реализовать метод, который десериализирует строку в кодировке 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) |