El mensaje de error "Viewstate no es válido para esta página" no proporciona información suficiente para solucionar el problema

Para obtener una versión de Microsoft.NET Framework 1.1 de este artículo, consulte 831150 .



Importante: No instale este hotfix en un equipo que está en un entorno de granja de servidores Web o en un entorno agrupado, a menos que se va a instalar esta revisión en todos los equipos en el entorno o si no tiene instalado el hotfix 323744 en todos los equipos en el entorno.

Para obtener más información, consulte "Descripción de la característica de estado de vista MAC" en la sección "Más información".

Resumen

Dado que los datos de estado de vista se almacenan en un campo oculto en una página Web, es vulnerable a manipulación cuando se transfiere datos entre el cliente y el servidor. Para ayudar a proteger la característica de estado de vista, Microsoft ASP.NET valida los datos de estado de vista para comprobar que procede de la página correcta.

Si ASP.NET no puede validar los datos de estado de vista, ASP.NET devuelve un mensaje en el explorador cliente que indica que "viewstate no es válido para esta página y podría estar dañado." Sin embargo, el mensaje no describe por qué los datos de estado de vista no están válidos.

Para obtener más información acerca de la característica de estado de vista, consulte "Descripción de la característica de estado de vista" en la sección "Más información".

Solución

Aunque este artículo ofrece una revisión, este hotfix no corrige los errores de datos de estado de vista. Esta revisión sólo proporciona información adicional para ayudarle a solucionar problemas de errores de estado de vista de datos.

Ahora hay una revisión compatible de Microsoft, pero sólo se diseñó para corregir el problema que se describe en este artículo. Sólo se aplica a sistemas que experimenten este problema específico. Esta revisión puede ser sometida a comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, recomendamos que espere al próximo service pack de Microsoft.NET Framework 1.0 que contenga este hotfix.

Para resolver este problema inmediatamente, póngase en contacto con los servicios de soporte técnico de Microsoft para obtener la revisión. Para obtener una lista completa de números de teléfono de servicios de soporte técnico de Microsoft e información acerca de los costos de soporte técnico, visite el siguiente sitio Web de Microsoft: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 (o atributos del archivo más reciente) mostrados en la tabla siguiente. Las fechas y horas de estos archivos se muestran en la hora Universal coordinada (UTC). Al ver la información del archivo, se convierte en hora local. Para encontrar la diferencia entre la hora UTC y la hora local, utilice la ficha zona horaria en la herramienta fecha y hora del Panel de Control.
   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

Detalles de revisión

Esta revisión hace que los mensajes de error de estado de vista contener más información. Después de aplicar este hotfix, se convierte en el título del mensaje de error de estado de vista "No se puede validar los datos." Aunque el nuevo formato de mensaje de error se describe cuál es el problema, proporciona más información que el formato de mensaje anterior.

Nota: Para obtener más información sobre el estado de los datos de estado de vista, puede ejecutar la información de estado de vista que aparece en el mensaje de error a través de un descodificador de estado de vista de otros fabricantes.

Esta revisión establece la propiedad InnerException en el objeto HttpException para que puede usar el método Application_Error para registrar la excepción subyacente. Asegúrese de que ese recursivamente registrar todos los errores de la propiedad de InnerException .

Este hotfix agrega la siguiente información específica sobre el cliente, el mensaje de error para errores de estado de vista:
  • Dirección IP
  • Número de puerto
  • Agente de usuario
  • Valor del estado de vista
  • HTTP Referer
  • Ruta de acceso de la página solicitada
Si el error se produce cuando ASP.NET está comprobando el código de autenticación de mensaje (MAC) de estado de vista, este hotfix agrega un mensaje en el seguimiento de pila que le pide que compruebe la configuración < machineKey >. El mensaje de error también las notas que sólo se pueden registrar los datos de estado de vista a la misma página.

Si el error se produce durante la deserialización, esta revisión agrega el símbolo (token) de LosFormater, el símbolo (token) de _deserializationData y la posición donde se produjo el error en el mensaje de error.

En la mayoría de los casos, si se ha truncado los datos de estado de vista, la característica de estado de vista experimentará un error FormatException en el método FromBase64String y recibirá el siguiente mensaje de error:
Longitud no válida para una matriz de caracteres Base-64
Sin embargo, si los datos de estado de vista se ha truncado y está aún codificado en base64, el error se producirá más adelante en el código.

Mensaje de error de estado de vista antes de instalar este hotfix.

Error de servidor en ' / ViewState' aplicación.
--------------------------------------------------------------------------------
El viewstate no es válido para esta página y podría estar dañada.
Descripción: Se ha producido una excepción no controlada durante la ejecución de la solicitud web actual. Revise el seguimiento 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: viewstate no es válido para esta página y podría estar dañado.

Error de origen:

Se generó una excepción no controlada durante la ejecución de la solicitud web actual. Información sobre el origen y la ubicación de la excepción puede identificarse mediante el seguimiento de pila de excepciones más abajo.

Seguimiento de la pila:

[HttpException (0 x 80004005): el viewstate no es válido para esta página y podría estar dañada.]
System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +151
System.Web.UI.Page.LoadPageViewState() + 18
System.Web.UI.Page.ProcessRequestMain() +423

Mensaje de error de estado de vista después de instalar este hotfix.

Error de servidor en ' / ViewState' aplicación.
--------------------------------------------------------------------------------

No se puede validar los datos.
Descripción: Se ha producido una excepción no controlada durante la ejecución de la solicitud web actual. Revise el seguimiento 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: no se puede validar los datos.

Error de origen:

Se generó una excepción no controlada durante la ejecución de la solicitud web actual. Información sobre el origen y la ubicación de la excepción puede identificarse mediante el seguimiento de pila de excepciones más abajo.

Seguimiento de la pila:

[HttpException (0 x 80004005): no se puede validar datos.]
System.Web.Configuration.MachineKey.GetDecodedData (Byte [] buf, String strModifier) +866
System.Web.UI.LosFormatter.Deserialize(String input) + 44

[HttpException (0 x 80004005): error en la autenticación de viewstate. 1) Si se trata de un clúster, editar configuración < machineKey > para que todos los servidores utilizan la misma validationKey y algoritmo de validación. AutoGenerate no se puede utilizar en un clúster. 2) Viewstate sólo puede enviarse a la misma página. 3) viewstate para esta página puede estar dañada.]
System.Web.UI.LosFormatter.Deserialize(String input) +102
System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +101

[HttpException (0 x 80004005): el viewstate no es válido para esta página y podría estar dañada.
Cliente IP: 127.0.0.1
Puerto: 1095
Agente de usuario: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)
ViewState: dDwzNDM3NTkwMzg7dDw7bDxpPDEPGk8MT47PjtsPHQ8QDA8cDxwPGw8RGF0YUt
HTTP Referer: http://localhost/Connect2Access/WebForm1.aspx
Ruta de acceso: /connect2access/webform1.aspx.]
System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +435
System.Web.UI.Page.LoadPageViewState() + 16
System.Web.UI.Page.ProcessRequestMain() +439
Nota: El valor de ViewState en este mensaje de error de ejemplo se ha truncado para caber en el contexto de este artículo.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Más información

Para obtener más información acerca de la terminología que se utiliza para describir las actualizaciones de producto de Microsoft, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

824684 descripción de la terminología estándar que se utiliza para describir las actualizaciones de software de Microsoft

Descripción de la característica de estado de vista

ASP no tiene estado. Cada vez que una aplicación realiza un viaje de ida desde el servidor al cliente, los datos no se guardan intrínsecamente. Cada vez que se registra una página Web en el servidor, la página se vuelve a crear. Este comportamiento hace que toda la información que está asociada con la página y con los controles de la página, se pierde en cada acción de ida. Por ejemplo, si un usuario escribe información en un cuadro de texto, esa información se pierde en el viaje de vuelta desde el explorador o desde el dispositivo cliente al servidor.

ASP.NET también es independiente. Sin embargo, ASP.NET incluye una nueva característica, el estado de vista, que puede utilizar para conservar datos entre idas y vueltas hacia y desde el servidor. Estado de vista conserva automáticamente los valores de propiedad de la página y los valores de todos los controles de la página, entre idas y vueltas. Los datos de estado de vista se mantienen como un campo oculto de la página.

Puede utilizar la característica de estado de vista para almacenar sus propios valores específicos de la página a través de ida y vuelta cuando la página se devuelve datos a sí misma. Por ejemplo, si la aplicación mantiene información específica del usuario, puede utilizar la característica de estado de vista para almacenar esta información específica del usuario. Información específica del usuario es información que se utiliza en la página pero que no es necesariamente una parte de ningún control.

volver a la sección "Resumen"

Descripción de la característica de estado de vista MAC

El código de autenticación de mensaje (MAC) de estado de vista es una etiqueta de autenticación (también conocido como una suma de comprobación) que se crea cuando se aplica un esquema de autenticación, junto con una clave secreta, a un mensaje. Un MAC se calcula y comprobar mediante la misma clave. Por lo tanto, un MAC sólo pueden comprobarse por el receptor. MACs pueden crearse mediante varias técnicas de cifrado y algoritmos, como el algoritmo de Hash seguro (SHA), el algoritmo de síntesis del mensaje 5 (MD5) o el algoritmo estándar de cifrado de datos (DES).

La característica de MAC de estado de vista está pensada para evitar que a un cliente envíe una solicitud que contiene datos de estado de vista malintencionados. De forma predeterminada, se habilita la característica de MAC de estado de vista mediante la enableViewStateMac = "true" indicador en el archivo Machine.config.

La forma más sencilla de determinar si está relacionado con el problema que está experimentando el MAC es desactivar la característica. Para ello, establezca el indicador enableViewStateMac en false. Si ya no experimenta errores de estado de vista, el problema relacionado con el Mac.

El MAC de estado de vista se aplica de forma diferente en el Microsoft.NET Framework 1.0 antes de instala el hotfix 323744. La revisión que se describe en este artículo (revisión 832183) incluye la revisión 323744. Si no instala el hotfix 323744 - solo o con revisión 832183 - en todos los equipos en el entorno también los equipos que no tengan la revisión 323744 instalado experimentará errores de estado de vista de datos.

Para obtener más información, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:

CORREGIR 323744 : "El estado de vista no es válido para esta página y podría estar dañado" mensaje de error en ASP.NET

328546 INFO: posterior al Service Pack 2.NET Framework ASP.NET Hotfix paquete

Volver al principio
Propiedades

Id. de artículo: 832183 - Última revisión: 17 ene. 2017 - Revisión: 1

Comentarios