ASP.NET profilo personalizzato dell'oggetto non riesce dopo la modifica di MSBuild Deployment
-
24-10-2019 - |
Domanda
Abbiamo un ASP.NET 2.0 moduli web app che utilizzato per essere distribuito attraverso un progetto di distribuzione web. Recentemente abbiamo implementato una nuova versione costruita da TFS / MSBuild e il cambiamento sembra aver causato un problema con la deserializzazione di un oggetto profilo personalizzato.
Questa è la voce nella nostra sezione Profilo / immobili a web.config.
<add name="MyKey" type="OurApp.UserData" serializeAs="Binary" />
Questa non è cambiata a seguito del processo di generazione, né il cambiamento OurApp.UserData.
Tuttavia, quando i tentativi all'applicazione di leggere i dati di un determinato utente, non viene trovato nulla.
Una differenza evidente è che nella versione distribuzione web, un unico OurApp.dll è stato creato per il sito web, mentre la nuova versione è composta da molteplici, assemblee "nome-maciullato". Potrebbe che causano il profilo a Miss lettura delle proprietà memorizzati nel tipo OurApp.UserData?
Soluzione
The answer did in fact turn out to be the assembly names. After adding a aspnet_merge step to the build process and generating an assembly of the old name, all was well.
Presumedly this indicates that the profile serialization routines embed the fully-qualified class name into the binary data representing object.