vista valido usar tutorial trabajar que net estado como asp __viewstate asp.net viewstate

asp.net - valido - viewstate vs session



¿Viewstate caduca? (12)

Además, como resultado, ASP.NET por defecto encripta ViewState con una clave autogenerada. Esto puede anularse con el elemento MachineKey en el archivo web.congif. Aunque ViewState no caducará, puede dejar de ser válido si se utiliza una clave autogenerada diferente para descifrar ViewState, como después de un reinicio de IIS, la redistribución de una aplicación o el acceso a un servidor diferente en una granja de servidores web. Si planea almacenar ViewState durante largos períodos de tiempo, tenga cuidado con la forma en que está cifrado / descifrado.

http://msdn.microsoft.com/en-us/library/ms998288.aspx

Supongamos que tiene una página aspx que no depende de la sesión, pero que confía en viewstate para persistir entre las devoluciones.

Si un usuario está accediendo a esta página y se va para un largo almuerzo, ¿viewstate seguirá siendo válido cuando regrese?


De forma predeterminada, Viewstate se incluye con el contenido html como una entrada oculta. Eso significa que no caducará, pero que todo en viewstate debe cargarse desde el navegador del usuario. Como suele ser la parte más lenta de la conexión en un sitio público, poner muchas cosas en viewstate puede hacer que su sitio web parezca muy lento.


La respuesta corta es no.

La respuesta más larga es: depende de la implementación del almacenamiento de ViewState. Puede proporcionar una implementación personalizada de ViewState que podría caducar después de una cantidad determinada de tiempo. Por ejemplo, puede almacenar ViewState en la base de datos o en el disco y enviar solo una referencia al valor almacenado en un campo oculto. Luego, puede usar el procesamiento por lotes para eliminar los datos obsoletos de ViewState o realizar la caducidad cuando se solicite.


No se guarda ViewState como parte del proceso de PostBack. Sin embargo, puede anular SavePageStateToPersistenceMedium () de la clase de página y LoadPageStateFromPersistenceMedium () para implementar ese comportamiento si lo desea. Para obtener más información, lea Understanding ASP.NET ViewState .

Tenga en cuenta que Page ViewState se almacena en la sesión, por lo tanto, si su sesión expira, el ViewState se perderá. No diría que esto es ViewState que expira, pero sí, se destruirá después del tiempo de espera de la sesión.


ViewState persistirá de POST a POST. En realidad, está almacenado dentro de un campo oculto en su formulario para que vuelva a enviarse a su servidor todo el tiempo.

Mientras no confíe en la Sesión, no debería tener problemas para reconstruir el estado de la página. Sin embargo, es fácil probar el código de estado de su página: simplemente configure su sesión para que expire después de 60 segundos en su web.config y luego cargue su página, espere un poco más de un minuto (navegue hasta y responda algunas preguntas) y luego haz clic en un botón en tu página.


ViewState se mantiene en un campo oculto en la página misma. De modo que, mientras el usuario tenga la página, tendrá ViewState. Pero si su aplicación automáticamente cierra la sesión del usuario después de un cierto período de tiempo, seguir teniendo el ViewState puede no hacerle ningún bien.


Viewstate en sí no caduca. Dado que se publicó en un formulario, se puede reconstituir en cualquier momento.

Según MSDN : " ... es posible que el estado de visualización expire si una página no se vuelve a publicar dentro del tiempo de caducidad de la sesión ". Por lo tanto, en una ronda de algún tipo, puede caducar si su sesión lo hace, pero viewstate no caduca directamente. Como no está utilizando el estado de la sesión de todos modos, no tiene que preocuparse por la caducidad implícita.

Tenga en cuenta que no lo hubiera dicho que expiró. Esa fue MS a quien cité en su propio artículo titulado Controlling ViewState


Viewstate no caduca, siempre y cuando todavía estén en la página, seguirá allí y será funcional.


Viewstate no caduca.

Todos los datos de viewstate se almacenan en el cliente y se envían nuevamente al servidor cuando el usuario ejecuta una devolución de datos.

Esto tiene algunas implicaciones muy interesantes, y se explica muy detalladamente aquí .


Sí, ViewState caduca en ciertas condiciones. Por ejemplo, cuando está utilizando iframe: s, o cuando está manteniendo una conexión "en vivo" con el servidor con devoluciones de datos regulares. Luego, quizás desee investigar esta opción: <sessionPageState historySize="9"/> , que realmente codifica cuántos "resultados de devolución de datos" se almacenan en la sesión (si se utiliza SessionPageStatePerster). Cada devolución de datos almacena su ViewState hasta el final de la cola en Session ["__ VIEWSTATEQUEUE"], y borra ViewStates que son "muy antiguos". ¿Y cómo crees que SessionPageStatePerster decide qué ViewStates son demasiado antiguos ... al configurar alguna historySize-constant arbitraria en web.config ... Omg! También me queda por siempre para encontrar este problema ... Mi odio hacia la programación asp.net es indescriptible ahora ... grrr ...


Perdón por revivir este hilo viejo, pero la nueva información está disponible ahora:

Sí, los ViewStates caducan . Vengo de 19 horas investigando sobre un problema de ViewStates que pierde sus valores entre las devoluciones de datos a intervalos largos. Me tomó un tiempo leer los documentos de MSDN y las respuestas de diciendo que era básicamente imposible a menos que se utilizara una implementación de almacenamiento ViewState personalizada, que, ahora sé, no es cierto.

Mi problema estaba teniendo lugar en un entorno de SharePoint 2013. El servicio conocido como Caché Distribuida (también conocido como AppFabric ) hace el almacenamiento en caché de ViewState y tiene asociado un Time to Live . Puede encontrar más información aquí: http://blogs.msdn.com/b/besidethepoint/archive/2013/03/27/appfabric-caching-and-sharepoint-1.aspx

La información más interesante se puede encontrar en esta frase: "Para mejorar el rendimiento de la página, comenzando en SharePoint 2013, el caché de SharePoint almacena el lado del servidor de datos de ViewState en lugar de transferirlo de un lado a otro a los clientes".

Espero que esta información ayude a alguien tan desesperado como lo estaba hace 19 horas.