Sé que hay muchas preguntas sobre este tema y las he leído todas.
Estoy usando IIS8, .Net 4.5.
Los usuarios obtienen aleatoriamente un error de estado de vista no válido, no puedo resolverlo. Una vez que esto sucede, la única forma en que pueden volver al sitio es borrar el caché del navegador.
En mi web.config tengo:
<system.web> <machineKey validationKey='....key here' decryptionKey='....decrypt key is valid here' validation='SHA1'/> <!--<hostingEnvironment shadowCopyBinAssemblies="false" />--> <authentication mode="None" /> <compilation targetFramework="4.5.1" /> <httpRuntime targetFramework="4.5.1" /> ... </system.web>Estoy ejecutando en un servidor privado virtual y todavía tengo que encontrar un estado de vista de más de 9kb.
Mi grupo de aplicaciones está configurado para reiniciarse a las 3:00 am, una vez al día.
Mi página usa paneles de actualización, ¿tal vez el usuario está haciendo clic en 'atrás'? Pero he visto que sucede simplemente visitando la página sin hacer clic.
Una cosa que noté es que tengo 3 sitios diferentes que usan la misma identidad de grupo de aplicaciones, pero los grupos de aplicaciones están separados. No hay claves de máquina en machine.xml, pero solo en mi web.config.
Un par de posibilidades para investigar:
Los paneles de actualización están cambiando los valores de los campos de formulario (que son los que se usan para calcular ViewState), luego la página se envía de vuelta al servidor, donde los nuevos valores hacen que la validación falle. ver esta publicación
Ha habilitado el almacenamiento en caché (realice un seguimiento de los encabezados HTTP; asegúrese de no tener abiertas las herramientas de desarrollo), lo que está causando que se genere un ViewState no válido con UpdatePanel complicando las cosas.
¿Está utilizando Server.Execute en cualquier lugar? (ver el enlace de arriba para lo mismo)
(menos probable) ¿Su "servidor privado virtual" se migra a un hardware diferente (quizás sin que usted lo sepa)?