A mensagem de erro "Viewstate é inválido para esta página" não fornece informações suficientes para solucionar o problema

Traduções deste artigo Traduções deste artigo
ID do artigo: 832183 - Exibir os produtos aos quais esse artigo se aplica.
Para uma versão deste artigo do Microsoft .NET Framework 1.1, consulte 831150.


importante NÃO instalar esse hotfix em um computador que está em um ambiente de farm da Web ou em um ambiente de cluster a menos que você estiver instalando esse hotfix em cada computador no ambiente ou a menos que você tenha instalado o hotfix 323744 em todos os outros computadores no ambiente.

Para obter mais informações, consulte "Description of the View State MAC feature" na seção "Mais informação".
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Como dados de estado de exibição são armazenados em um campo oculto em uma página da Web, é vulnerável à violação de dados estão sendo transferidos entre o cliente e o servidor. Para ajudar a tornar o recurso de estado de exibição mais seguro, Microsoft ASP.NET valida os dados de estado de exibição para verificar que ele veio a página correta.

Se o ASP.NET não pode validar os dados de estado de exibição, o ASP.NET retornará uma mensagem para o navegador cliente informando que "o viewstate é inválido para esta página e pode estar corrompido." No entanto, a mensagem não descreve por que os dados de estado de exibição não são válidos.

Para obter mais informações sobre o recurso de estado de exibição, consulte "" no "Informações adicionais" seção.

Resolução

Embora este artigo oferece um hotfix, esse hotfix não corrige erros de dados do estado de exibição . Esse hotfix somente fornece informações adicionais para ajudar a solucionar erros de dados do estado de exibição.

Um hotfix suportado agora está disponível da Microsoft, mas destina-se somente a corrigir o problema descrito neste artigo. Aplique-o somente nos sistemas que apresentarem esse problema específico. Esta correcção poderá submetida a testes adicionais. Portanto, se você não tiver sido gravemente afetado por esse problema, recomendamos que você aguarde o próximo Microsoft .NET Framework 1.0 service pack que contém esse hotfix.

Para resolver esse problema imediatamente, contate o Atendimento Microsoft para obter o hotfix. Para obter uma lista completa de telefones do Atendimento Microsoft e informações sobre os custos de suporte da, visite o seguinte site:
http://support.microsoft.com/contactus/?ws=support
Observação Em alguns casos, as taxas cobradas pelas ligações para chamadas de suporte podem ser canceladas se um profissional de suporte da Microsoft determinar que uma atualização específica resolverá o problema. Os custos normais de suporte serão aplicados a questões e problemas que não se qualificam à atualização específica em questão de suporte adicionais.

A versão em inglês deste hotfix tem atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos estão listadas no horário de universal coordenado (UTC). Quando você exibe as informações do arquivo, ele é convertido para a hora local. Para encontrar a diferença entre o UTC e a hora local, use a guia fuso horário na ferramenta Data e hora no painel de controle.
   Date         Time   Version       Size       File name
   --------------------------------------------------------------
   11-Dec-2003  07:13  1.0.3705.478    200,704  Aspnet_isapi.dll
   11-Dec-2003  07:06                    4,169  Aspnet_perf.h
   11-Dec-2003  07:14                  513,302  Aspnet_perf.ini
   11-Dec-2003  07:14                  510,714  Aspnet_perf2.ini
   11-Dec-2003  07:14  1.0.3705.478     24,576  Aspnet_regiis.exe
   11-Dec-2003  07:14  1.0.3705.478     28,672  Aspnet_wp.exe
   11-Dec-2003  06:27  1.0.3705.478     69,632  Corperfmonext.dll
   17-Jun-2003  21:43                   16,597  Installpersistsqlstate.sql
   17-Jun-2003  21:43                   17,331  Installsqlstate.sql
   09-Sep-2003  00:28                   17,807  Installsqlstatetemplate.sql
   11-Dec-2003  06:25  1.0.3705.478    303,104  Mscorjit.dll
   11-Dec-2003  23:48  1.0.3705.478  1,953,792  Mscorlib.dll
   11-Dec-2003  06:18                   10,284  Mscorlib.ldo
   11-Dec-2003  06:26  1.0.3705.478  2,273,280  Mscorsvr.dll
   11-Dec-2003  06:26  1.0.3705.478  2,269,184  Mscorwks.dll
   11-Dec-2003  07:10  1.0.3705.478     20,480  Perfcounter.dll
   23-Aug-2002  02:23                       15  Smartnav.htm
   30-Jul-2003  00:04                    8,728  Smartnav.js
   11-Dec-2003  23:48  1.0.3705.478  1,179,648  System.data.dll
   11-Dec-2003  23:48  1.0.3705.478  1,695,744  System.design.dll
   11-Dec-2003  23:48  1.0.3705.478  1,175,552  System.dll
   11-Dec-2003  23:48  1.0.3705.478    241,664  System.messaging.dll
   11-Dec-2003  23:48  1.0.3705.478    311,296  System.runtime.remoting.dll
   11-Dec-2003  23:49  1.0.3705.478    131,072  System.runtime.serialization.formatters.soap.dll
   11-Dec-2003  23:48  1.0.3705.478  1,200,128  System.web.dll
   11-Dec-2003  23:48  1.0.3705.478    507,904  System.web.services.dll
   11-Dec-2003  23:50  1.0.3705.478  1,994,752  System.windows.forms.dll
   11-Dec-2003  07:20                   16,632  System.windows.forms.ldo
   11-Dec-2003  07:15  1.0.3705.478     57,344  System.windows.forms.tlb
   11-Dec-2003  23:50  1.0.3705.478  1,302,528  System.xml.dll
   11-Dec-2003  23:47  1.0.3705.478     32,768  Tlbimp.exe
   17-Jun-2003  21:43                    1,419  Uninstallpersistsqlstate.sql
   09-Sep-2003  00:28                    2,119  Uninstallsqlstatetemplate.sql
   11-Dec-2003  23:47  1.0.3705.478     65,536  Wsdl.exe

Detalhes do hotfix

Esse hotfix faz com que as mensagens de erro de View State contêm mais informações. Após aplicar esse hotfix, o título de mensagem de erro estado de exibição se torna "Não é possível validar dados." Embora o novo formato de mensagem erro não descreve exatamente o que o problema é, ele fornece mais informações que o formato de mensagem anterior.

Observação Para obter mais informações sobre o status de seu estado de exibição dados, você pode executar as informações de estado de exibição que aparecem na mensagem de erro por meio de um decodificador de estado de exibição de terceiros.

Esse hotfix define a propriedade InnerException no objeto HttpException para que você pode usar o método Application_Error façam a exceção subjacente. Certifique-se que recursivamente você registrar todos os erros de propriedade InnerException .

Esse hotfix adiciona as seguintes informações específicas sobre o cliente a mensagem de erro para erros de estado de exibição:
  • Endereço IP
  • Número de porta
  • Agente do usuário
  • Valor do estado do modo de exibição
  • Referer HTTP
  • Caminho da página solicitada
Se o erro ocorrer enquanto o ASP.NET está verificando o estado de exibição código de autenticação de mensagem (MAC, Message Authentication code), esse hotfix adiciona uma mensagem no rastreamento de pilha que lhe permite verificar as configurações de <machinekey>. A mensagem de erro também observações que os dados de estado de exibição podem ser lançados apenas volta para a mesma página.

Se o erro ocorrer durante a desserialização, esse hotfix adiciona o token LosFormater, o token _deserializationData e a posição onde o erro ocorreu para a mensagem de erro.

Na maioria casos, se o estado de exibição dados foram truncados, o estado de exibição de recurso será enfrentar um erro FormatException no método FromBase64String e você receberá a seguinte mensagem de erro:
Comprimento inválido para uma matriz de caracteres base-64
No entanto, se os dados de estado de exibição foi truncados e é ainda codificado na base64, ocorrerá um erro posteriormente no código.

Mensagem de erro estado de exibição antes de instalar esse hotfix

Erro do servidor em ' / ViewState ' aplicativo.
--------------------------------------------------------------------------------
O viewstate é inválido para esta página e pode estar corrompido.
Descrição: Ocorreu uma exceção não tratada durante a execução da atual solicitação da web. Examine o rastreamento da pilha para obter mais informações sobre o erro e onde foi originado no código.

Detalhes da exceção: System.Web.HttpException: O viewstate é inválido para esta página e pode estar corrompido.

Fonte de erro:

Uma exceção não tratada foi gerada durante a execução de solicitação da web atual. Informações sobre a origem e o local da exceção podem ser identificadas usando o rastreamento de pilha de exceção abaixo.

Rastreamento de pilha:

[HttpException (0 x 80004005): O viewstate é inválido para esta página e pode estar corrompido.]
System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +151
System.Web.UI.Page.LoadPageViewState() +18
System.Web.UI.Page.ProcessRequestMain() +423

Mensagem de erro estado de exibição após você instalar esse hotfix

Erro do servidor em ' / ViewState ' aplicativo.
--------------------------------------------------------------------------------

Não é possível validar os dados.
Descrição: Ocorreu uma exceção não tratada durante a execução da atual solicitação da web. Examine o rastreamento da pilha para obter mais informações sobre o erro e onde foi originado no código.

Detalhes da exceção: System.Web.HttpException: não é possível validar os dados.

Erro de origem:

Uma exceção não tratada foi gerada durante a execução de solicitação da web atual. Informações sobre a origem e o local da exceção podem ser identificadas usando o rastreamento de pilha de exceção abaixo.

Rastreamento de pilha:

[HttpException (0 x 80004005): não é possível validar os dados.]
System.Web.Configuration.MachineKey.GetDecodedData(Byte[] buf, String strModifier) +866
System.Web.UI.LosFormatter.Deserialize (entrada de seqüência) +44

[HttpException (0 x 80004005): autenticação de viewstate falhou. 1) Se for um cluster, edite configuração de <machinekey> para que todos os servidores de usarem a mesma validationKey e o algoritmo de validação. AutoGenerate não pode ser usado em um cluster. ViewState 2) pode ser lançado apenas a volta para a mesma página. 3) O viewstate para esta página pode estar corrompido.]
System.Web.UI.LosFormatter.Deserialize (entrada de seqüência) +102
System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +101

[HttpException (0 x 80004005): O viewstate é inválido para esta página e pode estar corrompido.
Cliente IP: 127.0.0.1
Porta: 1095
Agente do usuário: Mozilla/4.0 (compatível; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)
ViewState: dDwzNDM3NTkwMzg7dDw7bDxpPDEPGk8MT47PjtsPHQ8QDA8cDxwPGw8RGF0YUt
HTTP Referer: http://localhost/Connect2Access/WebForm1.aspx
Caminho: /connect2access/webform1.aspx.]
System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +435
System.Web.UI.Page.LoadPageViewState() +16
System.Web.UI.Page.ProcessRequestMain() +439
Observação O valor ViewState nessa mensagem de erro exemplo foi truncado para caber o contexto de neste artigo.

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Mais Informações

Para obter mais informações sobre a terminologia que é usada para descrever as atualizações de produtos da Microsoft, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
824684Descrição da terminologia padrão que é usada para descrever as atualizações de software

Descrição do recurso View State

O ASP é sem monitoração de estado . Toda vez que um aplicativo faz um round trip do servidor para o cliente, os dados não é intrinsecamente salvo. Toda vez que uma página da Web é remetida para o servidor, a página é recriada. Esse comportamento faz com que todas as informações associadas com a página e com os controles na página, sejam perdidas para cada viagem. Por exemplo, se um informações de tipos de usuário em uma caixa de texto, essas informações são perdidas em round trip partir do navegador ou do dispositivo cliente para o servidor.

O ASP.NET também é sem monitoração de estado. No entanto, o ASP.NET possui um recurso novo, View State, que você pode usar para preservar os dados entre round trips para e do servidor. Estado de exibição automaticamente preserva valores de propriedade da página e os valores de todos os controles na página, entre viagens de ida e volta. Os dados de estado de exibição são mantidos como um campo oculto na página.

Você pode usar o recurso de estado de exibição para armazenar seus próprios valores específicos de páginas em viagens de ida e volta quando a página envia de volta a mesma. Por exemplo, se seu aplicativo mantém informações específicas de usuário, você pode usar o recurso de estado de exibição para armazenar essas informações específicas do usuário. Informações específicas de usuário são informações que é usado na página mas que não é necessariamente uma parte de qualquer controle.

back to the "Summary" section

Descrição do recurso MAC do estado de exibição

O código de autenticação de mensagem do estado de exibição (MAC) é uma marca de autenticação (também conhecido como uma soma de verificação ) que é criada quando você aplica um esquema de autenticação, juntamente com uma chave secreta, a uma mensagem. Um MAC é calculado e verificado usando a mesma chave. Portanto, um MAC somente pode ser verificado pelo destinatário pretendido. MACs podem ser criados usando várias técnicas de criptografia e algoritmos, como o SHA Secure Hash Algorithm (), o Message Digest 5 (MD5) algoritmo ou o algoritmo DES (padrão de criptografia de dados).

O recurso de MAC do estado de exibição se destina a impedir que um cliente enviar uma solicitação que contém dados de estado de exibição mal-intencionados. Por padrão, o recurso de MAC do estado de exibição está ativado usando o enableViewStateMac = "true" sinalizador no arquivo Machine.config.

A maneira mais simples para determinar se o problema que você está enfrentando está relacionado para o MAC é desativar o recurso. Para fazer isso, defina o sinalizador enableViewStateMac como false . Se você não tiver erros de estado de exibição, o problema relacionado para o Mac.

O MAC do estado exibição é aplicado diferente no Microsoft .NET Framework 1.0 antes 323744 hotfix está instalado. O hotfix que este artigo descreve (hotfix 832183) inclui o hotfix 323744. Se você não instalar o hotfix 323744 - sozinho ou com hotfix 832183 - em todos os outros computadores no ambiente também, os computadores que não têm hotfix 323744 instalado terão os erros de dados do estado de exibição.

Para obter mais informações, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
323744CORRECÇÃO: "O estado de exibição é inválido para esta página e pode estar corrompido" mensagem de erro no ASP.NET
328546INFO: Service Pack 2 Hotfix do .NET Framework ASP.NET pacote

Propriedades

ID do artigo: 832183 - Última revisão: sexta-feira, 7 de abril de 2006 - Revisão: 2.3
A informação contida neste artigo aplica-se a:
  • Microsoft .NET Framework 1.0
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Studio .NET (2002), Enterprise Architect Edition SP1
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Common Language Runtime (included with the .NET Framework) 1.0
  • Microsoft ASP.NET 1.0
Palavras-chave: 
kbmt kbqfe kbhotfixserver kbvs2002sp1sweep kbstate kbnetframe100presp3fix kbfix kbbug KB832183 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 832183

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com