CORRECÇÃO: "O estado de exibição é inválido para esta página pode estar corrompido" mensagem de erro e quando o estado de exibição contém objetos que possuem decimais longos no .NET Framework 1.0

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: 812399
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sintomas
Quando você abre uma página que contém dados numéricos no estado View, se os números forem muito pequenos, por exemplo cinco coloca após a casa decimal (0.00004) você receber uma mensagem de erro de estado de exibição semelhante à seguinte:
Erro do servidor em ' / vState2 ' aplicativo. --------------------------------------------------------------------------------O estado de exibição é 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 estado de exibição é inválido para esta página e pode estar corrompido.

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): O estado de exibição é inválido para esta página e pode estar corrompido.] System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +150 System.Web.UI.Page.LoadPageViewState() +16 System.Web.UI.Page.ProcessRequestMain() +421
Causa
Esse problema ocorre porque o .NET Framework converte pequenas quantidades de View State em notação científica. Quando o .NET Framework tenta desserializar o número, ele não reconhece o número ou o número não é o formato de dados esperados.
Resoluçã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 service pack do .NET Framework 1.0 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: 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 dessa correção apresenta os atributos de arquivo (ou posteriores) listados na tabela a seguir. As datas e horas desses arquivos são listadas na acordo hora universal coordenada (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   -------------------------------------------------------------   01-Nov-2002  17:47  1.0.3705.370    196,608  Aspnet_isapi.dll   01-Nov-2002  17:47  1.0.3705.370      4,169  Aspnet_perf.h   01-Nov-2002  17:47  1.0.3705.370     20,468  Aspnet_perf.ini   01-Nov-2002  17:47  1.0.3705.370     20,342  Aspnet_perf2.ini   01-Nov-2002  17:47  1.0.3705.370     28,672  Aspnet_wp.exe   16-Oct-2002  17:22  1.0.3705.288         15  SmartNav.htm   18-Oct-2002  11:03  1.0.3705.288      8,800  SmartNav.js   16-Oct-2002  17:22  1.0.3705.288      7,003  SmartNavIE5.js   01-Nov-2002  17:47  1.0.3705.370  1,191,936  System.Web.dll
Situação
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no começo deste artigo.
Mais Informações

Passos para reproduzir o problema

Para reproduzir o problema, execute essas etapas:
  1. Cole o código a seguir em um novo arquivo chamado Viewstate.aspx e, em seguida, salve o arquivo para a raiz da Web de um servidor executando o Internet Information Services (IIS):
    <html>	<script language="C#" runat="server">	[Serializable]	public class myObjects	{		internal object _stepPrice;		public object StepPrice	{ get { return _stepPrice; } }	}  public void Page_Load(Object sender, EventArgs E)  {    if (!IsPostBack)    {		myObjects m1 = new myObjects();		myObjects m2 = new myObjects();				decimal tmp1 = 0.09194m; //This can be reproduced if these values are less than 0.0001. Otherwise, it works as expected.		decimal tmp2 = 0.01m;		m1._stepPrice= (object)tmp1;		m2._stepPrice= (object)tmp2;		object[] hello ={m1,m2};		ViewState["MyObj"]=hello;    }  }  public void Submit_Click(Object sender, EventArgs E)  {			object hello;			hello = (object) ViewState["MyObj"];  }	</script>	<body>		<form id="Form1" runat="server">			<asp:Button ID="Submit" OnClick="Submit_Click" Text="Submit" Runat="server"></asp:Button>		</form>	</body></html>
  2. No navegador, exibir a página (http://localhost/Viewstate.aspx). Clique em Enviar . (Nenhum erro ocorre.)
  3. Alterar as seguintes linhas de código no arquivo e, em seguida, salve o arquivo:

    De
    decimal tmp1 = 0.09194m;decimal tmp2 = 0.01m;
    para
    decimal tmp1 = 0.00009194m;decimal tmp2 = 0.00001m;
  4. Feche o navegador.
  5. Abrir o navegador novamente e, em seguida, exibir a página novamente. Clique em Enviar .

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 812399 - Última Revisão: 12/08/2015 01:51:22 - Revisão: 2.7

Microsoft Visual Studio .NET 2002 Professional Edition, Microsoft Visual Studio .NET 2002 Enterprise Architect, Microsoft Visual Studio .NET 2002 Enterprise Developer, Microsoft Visual Studio .NET 2002 Academic Edition, Microsoft .NET Framework 1.0

  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbvs2002sp1sweep kbqfe kbnetframe100presp3fix kbfix kbwnet kbproperties kbbug KB812399 KbMtpt
Comentários