【发布时间】:2014-02-11 17:12:18
【问题描述】:
我们的 LOB 应用程序是一个使用 CSLA 业务对象的客户端服务器应用程序,这些业务对象正在使用 NetDataContractSerializer 进行序列化。服务器端在 WCF 上运行,客户端有端点。
当客户端软件从安装了 .NET 4.5 的 Windows 7 或 Windows 8 运行时,这一切都有效。
在装有最新 .NET 4.5.1 Framework 的 Windows 8 或 Windows 8.1 上运行客户端软件时,会出现以下异常。
格式化程序在尝试反序列化 消息:尝试反序列化参数时出错 http://ws.lhotka.net/WcfDataPortal:FetchResult。内部异常 消息是“第 1 行位置 11619 中的错误。”元素 命名空间中的“m_serializationArray” 'http://schemas.microsoft.com/2003/10/Serialization/Arrays' 不是 预期的。期待元素'm_keyRehashCount'。'。请参见 InnerException 了解更多详情。
最内在的例外是
第 1 行位置 11619 出错。“元素”“m_serializationArray”来自 命名空间'http://schemas.microsoft.com/2003/10/Serialization/Arrays' 预计不会。期待元素“m_keyRehashCount”。
我在 stackoverflow 或谷歌上找不到任何关于此的信息,我在 CSLA 论坛上发布了同样的问题,也许我也应该在 Connect 上发布它。但也许我在这里很幸运?
在将 .NET Framework 更新到 4.5.1 之前,我需要一些时间来备份我的开发环境
我能想到两种可能的解决方案:
- 将 2008 服务器升级到 .NET 4.5.1。
- 强制客户端软件使用 .NET 4.5
是否可以强制客户端软件仅使用 .NET 4.5? 还有什么想法吗?
【问题讨论】:
-
我来自 Microsoft .net 框架兼容性团队。您能否向我们发送一个可以重现此问题的简单项目到 microsoft.com 上的 netfx45compat 以调查此问题?
-
我会尽我所能,但接下来的几天我有点忙
-
在模型中使用 ConcurrentDictionary
时会发生这种情况,我将发送修改后的 csla 示例项目。