首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >.Net应用程序在未打补丁的XP计算机上挂起

.Net应用程序在未打补丁的XP计算机上挂起
EN

Stack Overflow用户
提问于 2009-11-25 01:03:31
回答 3查看 607关注 0票数 1

我正在使用Windows2005开发一个运行在DevStudio XP机器上的Windows2.0应用程序。在我的机器上,所有的自动更新都是最新的,发布版本运行正常。如果我在一台普通的XP SP2机器上运行应用程序(例如,新安装的没有更新的操作系统),它挂起时有99%的SP2使用率。它在应用程序将要加载一些基于语言(翻译文本)的程序集时挂起。在任何人说“获取所有更新”之前,我恐怕这不是一个选项,因为运行应用程序的机器通常不连接到互联网-它们是钞票分拣机,银行IT部门真的不喜欢在他们的机器上安装新代码。

那么,有没有人知道是什么原因导致.Net 2.0应用程序在一台XP电脑上工作正常,而在一台较旧的XP电脑上却无法正常工作?我猜可能是.Net框架的更新导致了这些问题,但我还没能找出不兼容的根源。

更新:

我已经设置了远程调试,并在进程挂起时停止了进程,调用堆栈顶部的函数是"ntdll.dll!_RtlCompareMemoryUlong@12() + 0x10字节“,它是由"RtlFreeHeapSlowly”调用的(不确定我为什么要缓慢地释放一些东西)。

另一个更新:

似乎构建挂起的应用程序的PC已经安装了Dev Studio SP1和一些安全更新。我的机器没有安装SP1,如果我构建它,应用程序在目标PC上工作得很好。我不认为这是.Net框架的问题,因为我已经更新了框架,而目标PC有一个新安装的框架。不幸的是,我们不能在目标PC上安装Dev Studio SP1,因为他们没有安装Dev Studio。有没有办法找出哪些依赖项需要更新?

EN

回答 3

Stack Overflow用户

发布于 2009-11-25 01:07:09

尝试将.NET 2.0 SP1 /SP2框架与您的应用程序一起安装(即,将更新的.NET框架安装程序与您的应用程序捆绑在一起)。这样,您就不需要依赖客户执行完整的Windows Update来运行您的应用程序。

票数 2
EN

Stack Overflow用户

发布于 2009-11-25 01:10:20

如果你能在它以99%的CPU使用率运行的时候访问机器,你可以从SysInternals使用ProcMon来查看它在哪里花费了所有的时间。

票数 1
EN

Stack Overflow用户

发布于 2009-11-25 01:15:09

“挂起”是否意味着它永久挂起,或者只是需要很长时间(您正在加载的每个程序集15秒)?如果后者和PC已连接到网络,但不能访问互联网,请尝试禁用internet Explorer选项中的“检查证书吊销”功能。如果这解决了问题,您可以要求该选项保持禁用状态,或者在应用程序配置中禁用generatePublisherEvidence设置。

如果它永久挂起,那么这个答案不适用于您:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1791458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档