taghelper - En ASP.Net, a veces recibo el siguiente error: Falló la verificación de Viewstate. Motivo: el ViewState proporcionado falló el control de integridad
view component (4)
Dudo mucho que este problema tenga algo que ver con Viewstate. Tiene más que ver con el estado de la sesión y las cookies de autenticación.
¿Se está ejecutando su aplicación en una granja / jardín web? Si es así, debería echar un vistazo a este artículo .
De lo contrario, este error puede ocurrir normalmente si el tiempo de espera de FormsAuthenticationTicket es inferior al tiempo de espera de la sesión. Lo que sucede es que el boleto de Auth expira antes que la sesión del usuario y la siguiente solicitud no puede ser autenticada.
Antecedentes: desarrollé una aplicación web en ASP.Net 3.5 en C #. Funciona muy bien, pero ahora algunos usuarios han informado que a veces reciben un error. He tratado de duplicar el error, pero ha sido difícil. Una vez, sin embargo, cuando dejé la aplicación, volví más tarde e intenté moverla y se produjo un error. Creo que tiene algo que ver con el tiempo de espera, pero estoy usando el estado de vista.
¿Algunas ideas? Cuando miro el evento Log, veo la siguiente entrada de error.
¡Gracias por tu ayuda e ideas!
John
Mi registro de eventos tiene los siguientes errores:
Código de evento: 4005
Mensaje de evento: la autenticación de formularios falló para la solicitud. Motivo: el boleto entregado ha expirado.
Hora del evento: 14/03/2008 13:19:26
Hora del evento (UTC): 14/03/2008 13:19:26
ID. De suceso: d9f0333c2eed46e0b0207da69d2ea70e
Secuencia de eventos: 154
Suceso del evento: 5
Código de detalle del evento: 50202
Código de evento: 3005
Mensaje de evento: se ha producido una excepción no controlada.
Hora del evento: 3/12/2009 7:49:59 AM
Hora del evento (UTC): 3/12/2009 11:49:59 AM
Identificador de evento: 590ac0f6ad734d988e9e02f0fb7800eb
Secuencia del evento: 52
Suceso del evento: 1
Código de detalle del evento: 0
Información de la aplicación:
Application domain: /LM/W3SVC/32/ROOT-1-128813294498061103
Trust level: Full
Application Virtual Path: /
Application Path: C:/Home/LocalUser/ucpga/Web/
Machine name: 169349-WEB2
Procesar informacion:
Process ID: 6912
Process name: w3wp.exe
Account name: NT AUTHORITY/NETWORK SERVICE
Aquí está el último error:
Código de evento: 4009 Mensaje de evento: Falló la verificación de estado. Motivo: el ViewState proporcionó una comprobación de integridad fallida. Hora del evento: 15/03/2009 10:26:27 PM Hora del evento (UTC): 16/03/2009 2:26:27 AM Identificador de evento: 3b5be134005e49c3b40400bcaa5cb48d Secuencia de evento: 56 Evento del evento: 1 Código de detalle del evento: 50203
Información de la aplicación: Dominio de la aplicación: / LM / W3SVC / 32 / ROOT-1-128816433841748972 Nivel de confianza: ruta virtual completa de la aplicación: / Ruta de la aplicación: C: / Home / LocalUser / ucpga / Web / Nombre del equipo: 169349-WEB2
Información del proceso: ID del proceso: 8892 Nombre del proceso: w3wp.exe Nombre de la cuenta: NT AUTHORITY / NETWORK SERVICE
Información de solicitud: URL de solicitud: https://hr.ucpga.org:443/application.aspx Ruta de solicitud: /application.aspx Dirección de host del usuario: 74.160.64.222 Usuario:
Está autenticado: Tipo de autenticación falsa:
Nombre de la cuenta del hilo: 169349-WEB2 / ucpga
Información ViewStateException: mensaje de excepción: viewstate no válido. Cliente IP: 74.160.64.222 Puerto: 1251 User-Agent: Mozilla / 4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB5; .NET CLR 1.1.4322; InfoPath.1)
Esto parece un problema de autenticación. Probally tiene un tiempo de espera establecido en el ticket de autenticación que está por vencer. Si usa un tiempo de espera móvil, cada vez que acceda al servidor se renovará el ticket. Si no lo hace, sus boletos caducarán y deberá manejar este caso.
Editar:
Puede consultar este artículo de soporte para ver si se aplica a usted.
También puede consultar esta vista. El visor de estado puede ayudarlo a determinar si el estado de la vista no es válido.
Aquí hay otra buena publicación de un ingeniero de escalación de Microsoft
Este problema a menudo puede deberse a tener las teclas <machineKey />
generadas automáticamente en el archivo machine.config
su servidor. Cada vez que su aplicación se inicia de nuevo generará nuevas claves. Esto invalida cualquier viewstate encriptado existente o formularios de tickets de autenticación.
Intente establecer <machineKey />
validationKey
y decryptionKey
en valores fijos. Vea el siguiente enlace para más información:
También tuve este error ...
Si observa el error, es probable que su cadena de consulta URL encriptada. Lo que sucede es que la cadena de URL generada por webresource.axd tiene identidades que fueron encriptadas usando la configuración de la máquina clave. Estos caducan y si tiene una página en la que se sienta y luego intenta enviarla utilizando la cadena cifrada, se desencadena el Id. De evento 1316 o 4009. Es probable que usted capture esta excepción en el evento Application_Error y verifique si se activó la excepción CryptographicException.