我们有一个 winforms 应用程序,通过 clickonce 部署给用户并使用自动更新功能。
我们注意到,对于我们的用户来说,点击一次更新后,应用程序需要几分钟的时间才会出现。在此期间,应用程序可执行文件正在运行,CPU 使用率相当高,但没有显示任何窗口。
这在开发人员的机器上无法重现。用户和开发人员的机器之间有两个主要区别:
- 用户运行的是Windows XP,而开发人员运行的是Windows Vista。
- 开发人员与 clickonce 服务器位于同一域中,而用户位于与 clickonce 服务器所属域具有双向信任关系的不同域中。
应用程序的冷启动性能在更新后运行一次后几乎是瞬时的。
以下链接是给msdn论坛上有同样问题的人提供的,但没有发布解决方案:http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/5ec061c4-ec6f-4101-98a6-dc8bb5acab60 http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/5ec061c4-ec6f-4101-98a6-dc8bb5acab60
由于开发人员无法在本地重现,因此我们还没有对应用程序在此期间所做操作的分析跟踪。
关于为什么会发生这种情况的任何想法或关于如何解决问题的建议?
Thanks.
编辑 08/24/2009:创建了一个运行 XP 的 32 位虚拟机,并将其加入到与用户相同的域中。该问题在虚拟机中不存在。这似乎消除了 XP 和域成员身份作为问题根源的可能性。这似乎使得 VLAN、系统配置和补丁级别成为潜在的罪魁祸首。
当应用程序更新时,所有新程序集都需要及时编译。这种情况通常只会发生一次,因此可以解释为什么初始启动速度很慢以及为什么无法在开发人员计算机上重现。
我发现新部署的首次运行 .Net 应用程序的性能非常差(几分钟 vs 几秒),因为用户正在运行防病毒软件,因为防病毒工具会检查新的 Jitted 程序集是否是恶意的。
如果您能够监视应用程序的初始启动 - 检查 mscorjit.dll 是否已加载,以及进程消耗大量 CPU 的原因是抖动。另请检查是否有任何防病毒工具正在消耗大量 CPU。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)