有时会在我们域中的多台计算机上出现此问题: 用户启动我的.NET 4.0应用程序,但没有任何反应。 机器运行Windows XP,.NET版本为4.0.30319.1008
正如我在Task Manager中看到的那样,进程已经启动,但它只使用了40 KB的内存(有时更多,例如,404 KB,但普通的运行进程需要更多)。当我尝试终止此过程时,系统说它已成功完成,但进程保留在内存中并且.exe文件被锁定。只有重新启动计算机才能终止进程并解锁文件。
我尝试使用ProcMon进行分析,但我可以看到很少的事件,并且在加载图像之前进程停止(加载图像操作不会发生)。所以原因不在我的申请范围内。
作为一种解决方法,我尝试了一些事情:
重建应用程序并将.exe替换为其位置 - 这有帮助!但是两个EXE文件之间的区别仅在于更改的MVID GUID以及.exe中包含的其他一些编译信息
所以我的想法是程序集的崩溃本机映像被缓存到某处,因此替换.exe会启动系统来重建它。我对此并不强烈,但我尝试了“ngen update”指令 - 有时它有所帮助,有时候没有。
一段时间后,问题在某些机器上重复出现。
如何找到导致问题的原因?