REVISIÓN: "el estado de vista no es válido para esta página y podría estar dañado" mensaje de error cuando el estado de vista contiene objetos que tienen decimales largos en el.NET Framework 1.0

Id. de artículo: 812399 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Síntomas

Cuando abre una página que contiene datos numéricos en la vista de estado si los números son muy pequeños, por ejemplo cinco coloca más allá de la posición decimal (0.00004) puede recibir un mensaje de error View State similar al siguiente:
Error de servidor en ' / vState2 ' Application. --------------------------------------------------------------------------------El estado de vista no es válido para esta página y podría estar dañado. Descripción: Se produjo una excepción no controlada durante la ejecución de la solicitud web actual. Revise la traza de la pila para obtener más información acerca del error y dónde se originó en el código.

Detalles de excepciones: System.Web.HttpException: el estado de vista no es válido para esta página y podría estar dañado.

Error de código fuente:
Se ha generado una excepción no controlada durante la ejecución de la solicitud Web actual. La información sobre el origen y la ubicación de la excepción pueden identificarse utilizando la excepción del seguimiento de la pila siguiente.

Pila:
[HttpException (0 x 80004005): el estado de vista no es válido para esta página y podría estar dañado.] System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +150 System.Web.UI.Page.LoadPageViewState() +16 System.Web.UI.Page.ProcessRequestMain() +421

Causa

Este problema se produce porque .NET Framework se convierten a números pequeños en la vista de estado en notación científica. Cuando .NET Framework intenta deserializar el número, que no reconoce el número o el número no es el formato de datos esperados.

Solución

Ahora hay disponible un hotfix para el que Microsoft proporciona soporte técnico, pero que sólo se diseñó para corregir el problema descrito en este artículo. Aplíquelo sólo a sistemas que experimenten este problema específico. Este hotfix puede ser sometido a comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, recomendamos que espere al próximo service pack de .NET Framework 1.0 que contenga este hotfix.

Para resolver este problema inmediatamente, póngase en contacto con soporte técnico de Microsoft para obtener la revisión. Para obtener una lista completa de los números de teléfono de los servicios de soporte técnico de Microsoft e información acerca de los costos de soporte, visite el siguiente sitio Web:
http://support.microsoft.com/contactus/?ws=support
Nota en casos especiales, los costos derivados normalmente de las llamadas al soporte técnico pueden cancelarse si un profesional de soporte técnico de Microsoft determina que una actualización específica resolverá el problema. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no guarden relación con la actualización en cuestión.La versión en inglés de esta revisión tiene los atributos de archivo enumerados en la siguiente tabla u otros posteriores. Las fechas y horas de estos archivos aparecen en la hora universal coordinada (UTC). La información de los archivos se convertirá a la hora local cuando la vea. Para averiguar la diferencia entre hora UTC y la hora local, utilice la ficha zona horaria de la herramienta fecha y hora en el panel de control.
   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

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:" de este artículo.

Más información

Pasos para reproducir el comportamiento

Para reproducir el problema, siga estos pasos:
  1. Pegue el código siguiente en un nuevo archivo denominado Viewstate.aspx y, a continuación, guarde el archivo a la raíz Web de un servidor que ejecuta Servicios de Internet Information Server (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. En el explorador, vea la página (http://localhost/Viewstate.aspx). Haga clic en Enviar . (No se produce ningún error.)
  3. Cambie las siguientes líneas de código en el archivo y guarde el archivo:

    Desde
    decimal tmp1 = 0.09194m;
    decimal tmp2 = 0.01m;
    para
    decimal tmp1 = 0.00009194m;
    decimal tmp2 = 0.00001m;
  4. Cierre el explorador.
  5. Abra el Explorador de nuevo y ver de nuevo la página. Haga clic en Enviar .

Propiedades

Id. de artículo: 812399 - Última revisión: martes, 11 de octubre de 2005 - Versión: 2.7
La información de este artículo se refiere a:
  • Microsoft Visual Studio .NET 2002 Professional
  • 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
Palabras clave: 
kbmt kbhotfixserver kbqfe kbvs2002sp1sweep kbqfe kbnetframe100presp3fix kbfix kbwnet kbproperties kbbug KB812399 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 812399

Enviar comentarios