症状

请考虑以下情况:

  • 在 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: 无法加载文件或程序集公、 版本 = 区域性的版本 ID 程序 = 键号或其中一个依赖项。 找到的程序集清单定义与程序集引用不匹配。 (从 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 软件更新的标准术语的说明

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

你对翻译质量的满意程度如何?

哪些因素影响了你的体验?

是否还有其他反馈?(可选)

谢谢您的反馈意见!

×