2009-03-20 15 views
5

Tengo una página que tiene un estado de vista realmente grande (> 300 KB). ...Si lo se. Reduje esta anomalía a un control de usuario, pero tengo problemas para determinar qué exactamente ese control está poniendo ahí.

He reemplazado SavePageStateToPersistenceMedium en la página, pero no soy bueno para trabajar con el objeto viewstate pasado. ¿Podría pasarlo a alguna función recursiva que imprima todo lo que hay en el objeto?

He intentado utilizar los decodificadores viewstate de libre disponibilidad, pero ninguno ha funcionado. Siempre recibo errores cuando intenta deserializar ViewState.

Estoy buscando un fragmento de código aquí.

Gracias,
Marcos

Gracias por la sugerencia traceing, esp. la cosa trace.axd. Pero eso solo me dice cuán grandes son los controles, no me dice qué hay en viewstate. Quiero poder ver si hay objetos que estoy serializando erróneamente en viewstate.¿Cuál es una buena forma de determinar qué hay en mi estado de visualización?

+0

¿Qué tipo de control es? –

+0

Este control le permite crear criterios de búsqueda dinámica para realizar consultas en una base de datos. (No sé si esa era la respuesta que estaba buscando) – MStodd

Respuesta

1

Solía ​​usar trace.axd. Enumera cada solicitud y vuelca el contenido de viewstate. Deberá habilitar el rastreo en web.config. Si tiene muchas solicitudes, querrá actualizar el tamaño de la memoria caché a más de 10.

0

En cuanto al problema con los decodificadores viewstate, es posible que tenga viewstate encriptado. Verifique esta publicación con comentarios/enlaces en ella: http://www.testingreflections.com/node/view/3424.

Actualización: tratar de apagarlo por completo en el elemento de páginas en el web.config:

<pages ... viewStateEncryptionMode="Never" ... /> 

Ver la sección de estado de vista en este documento MSDN How To: Configure MachineKey in ASP.NET 2.0

+0

Eliminé la configuración de 'machineKey' de mi web.config, pero sigo teniendo "Se produjo un error al decodificar la cadena ViewState: los datos serializados no son válidos. " en mi decodificador – MStodd

+0

@MStodd agregó una actualización con más información, compruébalo para descartar completamente que esté cifrado. – eglasius

0

me acaba de añadir Traza = "true "a la directiva de la página en su máquina local. La sección del árbol de control le mostrará el tamaño de vista de cada control.

1

Fritz Onion's ViewState Decoder es lo que necesita!

+0

Desearía que funcionara, pero sigo recibiendo "Se produjo un error al decodificar la cadena ViewState: los datos serializados no son válidos". en mi decodificador Esto es incluso después de eliminar la configuración 'machineKey' de web.config. – MStodd

+1

Acabo de probar v2.2 en esta fecha, funcionó muy bien! –

Cuestiones relacionadas