症状
请考虑以下情形:
- 在 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软件更新的标准术语说明