2011-03-15 42 views
0

我们有一个ASP.NET 2.0 Web窗体应用程序,该应用程序曾经通过Web部署项目进行部署。最近我们部署了一个由TFS/MSBuild构建的新版本,这个改变似乎导致了一个自定义配置文件对象的反序列化问题。更改为MSBuild部署后,ASP.NET自定义配置文件对象失败

以下是我们在web.config文件/属性部分的条目。

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

这并没有因构建过程而改变,OurApp.UserData也没有改变。

但是,当应用程序尝试读取给定用户的数据时,什么也找不到。

一个显而易见的区别是,在Web部署版本中,为Web站点创建了一个OurApp.dll,而新版本由多个“name-mangled”程序集组成。这可能导致配置文件错过读取存储在OurApp.UserData类型中的属性?

回答

0

事实上答案确实是程序集名称。在构建过程中添加一个aspnet_merge步骤并生成旧名称的程序集之后,一切都很顺利。

假设这表明配置文件序列化例程将完全限定的类名嵌入到表示对象的二进制数据中。