修补程序:在 .NET Framework 2.0 Service Pack 2 或 .NET Framework 3.5 Service Pack 1 中的程序集中使用 BinaryFormatter 对象序列化和反序列化泛型时,会收到异常错误消息

应用对象
.NET Framework 3.5 Service Pack 1

症状

请考虑以下情形:

  • 在 Microsoft .NET Framework 2.0 Service Pack 2 (SP2) 或 Microsoft .NET Framework 3.5 Service Pack 1 (SP1) 中,可以使用 BinaryFormatter 对象序列化和反序列化程序集中的泛型类型。
  • 程序集在服务器和客户端之间共享,并且程序集具有强名称。
  • 服务器和客户端之间的程序集的生成版本不同。

在此方案中,反序列化程序集的流时会收到以下异常错误消息之一:

错误消息 1

注意

System.Runtime.Serialization.SerializationException: 找不到程序集。

错误消息 2

注意

System.IO.FileLoadException: 无法加载文件或程序集“Common,Version=version ID,Culture=neutral,PublicKeyToken=key number”或其依赖项之一。 找到的程序集的清单定义与程序集参考不匹配。 (HRESULT 异常:0x80131040) System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage (IMessage reqMsg、IMessage retMsg) 如果已在 GAC 中注册程序集,则会收到以下异常:System.InvalidCastException:返回参数具有无效类型。

便笺

  • 使用 SoapFormatter 对象时,不会出现此问题。

  • 即使在序列化和反序列化时设置了 FormatterAssemblyStyle.Simple 值,也会出现此问题。

解决方法

修补程序替换信息

与 KB960442 对应的修补程序已被修补程序KB981574取代,修补程序包含以前包含在 KB960442 中的所有修补程序。 你应该使用修补程序KB981574来修复 KB960442 中描述的问题。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

981574 尝试在安装了 .NET Framework 3.5 SP1 的计算机上启动 Excel 时,初始屏幕打开时间比平时长

状态

Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。

详细信息

有关软件更新术语的更多信息,请单击下面的文章编号以查看 Microsoft 知识库中的相应文章:

824684 用于描述Microsoft软件更新的标准术语说明