我们有一个旧版 Windows 桌面客户端应用程序,它调用负载平衡器(在 Windows Server 2003 中运行),它将请求委托给连接到 SQL Server(Windows 2008 R2 数据库服务器)的应用程序服务器(Windows Server 2003)。这个桌面应用程序从 Windows XP 到 Windows 8.1 一直运行良好;但是,在 Windows 10 上,它意外地崩溃并在最终用户的 Windows 10 机器上显示以下错误消息:
Client Decompression System ERROR! ...Header sum error
in Function Name... GetServerDataToBuffer
Calling Process... LSD_Decompress (or Base64Encode)
Add'l Data: C:\Users\<username>\AppData\Local\Temp\<filename>.tmp
这就是在客户端机器上的事件查看器上记录的内容:
Faulting application name: <programname>.exe, version: 0.0.0.0, time stamp: 0x5011b17b
Faulting module name: ntdll.dll, version: 10.0.10240.16603, time stamp: 0x565531ee
Exception code: 0xc0000005
Fault offset: 0x0003dd2a
Faulting process id: 0x88c
Faulting application start time: 0x01d13c3c46d18779
Faulting application path: C:\xxxxx\<program-name>.exe
Faulting module path: C:\WINDOWS\SYSTEM32\ntdll.dll
Report Id: fdeb33bd-e546-4711-8c4e-e1d615bc3c14
这个桌面 Windows 应用程序继续在 Windows XP 机器上维护,因为它的 IDE 不能在早期版本的 Windows 上运行。它使用 Clarion Enterprise Edition 版本 5.5H(由 Softvelocity 提供)并使用以下 Clarion 扩展:ClarioNet Application Performance Writer V1.4、ClarioNET for Clarion 5.5版本 1.4(自 2004 年 1 月 11 日起)、xmlFUSE、wPDFControl 和 vuMail 3.20。
根据错误消息,我们认为此问题可能与在此系统中编译的两个文件(来自 ClarioNET)有关:lscomp.dll和lsdecomp.lib在 Windows 10 上的反应,遗憾的是我们无法请求支持,因为这个 Clarion版本在多年前就已停产。
在 Windows 10 PC 中安装时,它被配置为对所有用户以管理员权限运行(以管理员身份运行此程序),在“Windows 7”、“Windows Vista”甚至“Windows XP”的兼容模式下,并添加为数据执行保护 (DEP) 列表中的一个例外。“AppData\Local\Temp\”文件夹被授予“Everyone”用户“完全控制”权限。Windows 在 Windows 更新上是最新的,并且防病毒和防火墙已被禁用。我们已经运行了在 Windows 中执行干净启动的应用程序,使用最少的驱动程序和启动程序启动机器。这个问题仍然存在。:(
当我们迁移到一个完全不同的基于云的系统时,我们仍然需要至少在接下来的 16 个月内继续使用这个旧的遗留程序。有人提议在 Windows 7 中设置一个虚拟盒子,但被拒绝了。
问题: 1)我可以在 Windows 10 上设置哪些其他配置以使该程序运行良好?2) 是否有任何第三方应用程序可以帮助此应用程序在 Windows 10 上顺利运行?3)任何其他提示/提示?:'(