Pregunta

Tenemos una aplicación ASP.NET 2.0 Forms web que solía implementarse a través de un proyecto de implementación web. Recientemente implementamos una nueva versión creada por TFS/MSBuild y el cambio parece haber causado un problema con la deserialización de un objeto de perfil personalizado.

Aquí está la entrada en nuestra sección de perfil/propiedades en web.config.

<add name="MyKey" type="OurApp.UserData" serializeAs="Binary" />

Esto no cambió como resultado del proceso de compilación, ni nuestro Cambio OurApp.userData.

Sin embargo, cuando la aplicación intenta leer los datos para un usuario determinado, no se encuentra nada.

Una diferencia obvia es que en la versión de implementación web, se creó una sola ourapp.dll para el sitio web, mientras que la nueva versión se compone de múltiples ensamblajes "con nombre". ¿Podría eso hacer que el perfil se pierda la lectura de las propiedades almacenadas en el tipo nuestropp.userData?

¿Fue útil?

Solución

De hecho, la respuesta resultó ser los nombres de la asamblea. Después de agregar un paso ASPNET_Merge al proceso de compilación y generar un ensamblaje del antiguo nombre, todo estaba bien.

Presumió que esto indica que las rutinas de serialización del perfil incorporan el nombre de clase totalmente calificado en el objeto de representación de datos binarios.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top