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, UserAgent, PersistedStateRefererи 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) |