Question

Nous avons une application de formulaires Web ASP.NET 2.0 qui sert à déployer via un projet de déploiement Web. Récemment, nous avons déployé une nouvelle version construite par TFS / MSBuild et le changement semble avoir causé un problème avec la désérialisation d'un objet de profil personnalisé.

Voici l'entrée dans notre section profil / propriétés dans web.config.

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

Cela n'a pas changé à la suite du processus de construction, ni a changé OurApp.UserData.

Cependant, lorsque les tentatives d'application de lire les données pour un utilisateur donné, rien ne se trouve.

Une différence évidente est que dans la version de déploiement Web, un seul OurApp.dll a été créé pour le site Web, alors que la nouvelle version est composée de plusieurs « nom mutilées » assemblées. Cela pourrait-il causer le profil de manquer la lecture des propriétés stockées dans le type OurApp.UserData?

Était-ce utile?

La solution

La réponse a effectivement se révéler les noms d'assemblage. Après avoir ajouté une étape de aspnet_merge au processus de construction et de générer un assemblage de l'ancien nom, tout allait bien.

indique que cette supposée les routines de sérialisation profil intégrer le nom de classe entièrement qualifié dans les données binaires représentant l'objet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top