ViewStateException Classe

Definição

Representa a exceção que é lançada quando o estado da vista não pode ser carregado ou validado. Esta classe não pode ser herdada.

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
Herança
ViewStateException
Atributos
Implementações

Exemplos

O exemplo de código seguinte demonstra como implementar um método que desserializa uma cadeia codificada em base64 e devolve uma ICollection coleção de definições de propriedades. O Deserialize método pode lançar uma HttpException exceção que contenha um ViewStateException objeto como exceção interna. O exemplo mostra como podes apanhar uma HttpException exceção e recuperar as propriedades do ViewStateException objeto.

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

Observações

Se ocorrer uma exceção quando a página carrega a informação do estado de visualização, a página cria um ViewStateException objeto e passa-o como uma exceção interna dentro de uma HttpException exceção. A HttpException exceção é relançada para ser tratada pela aplicação.

A ViewStateException classe armazena informações sobre a exceção na Message propriedade. Se o pedido tiver permissão para aceder à ServerVariables propriedade, então esta Message contém os valores devolvidos das RemoteAddress, RemotePort, UserAgent, PersistedState, Referer, e Path das propriedades; caso contrário, a Message propriedade contém uma mensagem de erro genérica de estado de visualização.

Uma exceção de estado de visualização pode resultar de um erro de validação dos Códigos de Autenticação de Mensagens (MAC). Se o atributo enableViewStateMac da página estiver definido para true, a informação do estado de visualização é codificada com um identificador MAC. Quando a informação do estado de visualização é publicada de volta no servidor, a página verifica a codificação para garantir que não foi alterada pelo utilizador. Se a página não conseguir validar a codificação MAC na informação de estado de visualização, irá lançar uma HttpException exceção com o ViewStateException objeto como exceção interna.

Para que a validação MAC tenha sucesso, a informação do estado de visualização deve ser hashada pela mesma chave quando é enviada e recebida. Dentro de uma Web farm, a chave da máquina em cada servidor deve ser definida para uma chave comum.

Construtores

Name Description
ViewStateException()

Inicializa uma nova instância da ViewStateException classe.

Propriedades

Name Description
Data

Obtém uma coleção de pares chave/valor que fornecem informação adicional definida pelo utilizador sobre a exceção.

(Herdado de Exception)
HelpLink

Obtém ou define um link para o ficheiro de ajuda associado a esta exceção.

(Herdado de Exception)
HResult

Recebe ou define HRESULT, um valor numérico codificado atribuído a uma exceção específica.

(Herdado de Exception)
InnerException

Obtém a Exception instância que causou a exceção atual.

(Herdado de Exception)
IsConnected

Recebe um valor que indica se o cliente está atualmente ligado ao servidor.

Message

Recebe informação de depuração sobre o pedido HTTP que resultou numa exceção de estado de visualização.

Path

Obtém o caminho do pedido HTTP que resultou numa exceção de estado de visualização.

PersistedState

Obtém o conteúdo da cadeia de estado de vista que, ao ser lida, causou a exceção de estado de visualização.

Referer

Obtém o URL da página que ligava à página onde ocorreu a exceção de estado de visualização.

RemoteAddress

Obtém o endereço IP do pedido HTTP que resultou numa exceção de estado de visualização.

RemotePort

Obtém o número de porta do pedido HTTP que resultou numa exceção de estado de visualização.

Source

Obtém ou define o nome do aplicativo ou o objeto que causa o erro.

(Herdado de Exception)
StackTrace

Obtém uma representação string dos frames imediatos na stack de chamadas.

(Herdado de Exception)
TargetSite

Obtém o método que lança a exceção atual.

(Herdado de Exception)
UserAgent

Obtém o tipo de navegador do pedido HTTP que resultou numa exceção de estado de visualização.

Métodos

Name Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetBaseException()

Quando sobrescrito numa classe derivada, devolve o Exception que é a causa raiz de uma ou mais exceções subsequentes.

(Herdado de Exception)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetObjectData(SerializationInfo, StreamingContext)

Inicializa uma nova instância da ViewStateException classe com dados serializados.

GetType()

Obtém o tipo de execução da instância atual.

(Herdado de Exception)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Cria e devolve uma representação string da exceção atual.

(Herdado de Exception)

evento

Name Description
SerializeObjectState

Ocorre quando uma exceção é serializada para criar um objeto de estado de exceção que contém dados serializados sobre a exceção.

(Herdado de Exception)

Aplica-se a

Ver também