ASP.NET пользовательский профиль объект профиля не удается после перехода на развертывание MSBUILD
-
24-10-2019 - |
Вопрос
У нас есть приложение Web Forms ASP.Net 2.0, которое раньше было развернуто с помощью проекта по развертыванию веб -развертывания. Недавно мы развернули новую версию, созданную TFS/MSBuild, и изменения, по -видимому, вызвали проблему с десериализацией объекта пользовательского профиля.
Вот запись в нашем разделе «Профиль/Свойства» в web.config.
<add name="MyKey" type="OurApp.UserData" serializeAs="Binary" />
Это не изменилось в результате процесса сборки, а также не изменилось.
Однако, когда приложение пытается прочитать данные для данного пользователя, ничего не найдено.
Одно очевидное отличие состоит в том, что в версии веб-развертывания был создан один yourapp.dll для веб-сайта, тогда как новая версия состоит из нескольких «сборок с названием». Может ли это привести к тому, что профиль пропустит чтение свойств, хранящихся в типе Wourapp.userData?
Решение
Ответ действительно оказался именами сборки. После добавления шага aspnet_merge к процессу сборки и создания сборки старого имени все было хорошо.
Предполагается, что это указывает на то, что процедуры сериализации профиля внедряют полностью квалифицированное имя класса в бинарный объект, представляющий объект.