WCF 公共语言运行时在 windows XP 上检测到无效程序

WCF Common Language Runtime detected an invalid program on windows XP

我在 .NET 4 上有一个 windows 表单应用程序 运行ning,它与 WCF Web 服务通信。该应用程序被编译为 运行,以 X86 作为平台目标。该应用程序部署在由数百台计算机组成的网络上,只有几台恰好安装了 windows XP 版本(Microsoft Windows Embedded POSReady 2009,更准确地说是 service pack 3 ) 在调用 WCF 代理 class 对象的构造函数时启动错误 "Common Language Runtime detected an invalid program"。为了隔离问题,我创建了一个小型控制台应用程序,它唯一做的就是调用 Web 服务代理的构造函数 class,例如:

ItesWebServiceClient m_webService = new ItesWebServiceClient("BasicHttpBinding_IItesWebService");

然后抛出异常:

stacktrace output

所有其他计算机上的相同控制台应用程序 运行,即使是具有相同 windows 版本的计算机。

我们已经尝试在出现故障的计算机上修复和重新安装 .Net 框架,但到目前为止没有任何修复方法。我还使用 PEVerify 工具来验证 MSIL 和 运行 调试模式下的代码(无优化),如其他帖子所建议的那样。

有什么我想念的吗?是否需要安装关键的 .Net 框架组件或修补程序?

谢谢

好的,原来在机器上重新安装 .Net 框架的人总是安装 .net 客户端配置文件版本。卸载该版本并安装完整的 .net 4 版本解决了它。