0

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

这是 web.config 中配置文件/属性部分中的条目。

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

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

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

一个明显的区别是,在 Web 部署版本中,为网站创建了一个 OurApp.dll,而新版本由多个“名称混乱”的程序集组成。这会导致配置文件错过读取存储在 OurApp.UserData 类型中的属性吗?

4

1 回答 1

0

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

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

于 2011-04-20T13:24:49.640 回答