据报道,我们的WinForms应用程序偶尔会自动关闭。它既不显示我们自己的崩溃错误提交对话框,也不显示Windows的错误提交对话框,它只是关闭并消失,通常是当用户是afk而不对应用程序做任何操作时。这似乎是一种半罕见的情况,可能一个月2-3次,而且它发生在不止一个人身上。我不知道从哪里开始获得一个重现案例,或者从哪里开始追踪这个。
C# .NET 2.0报告的案例在Win XP上
有谁有什么想法吗?
发布于 2008-10-14 15:43:21
无限递归导致的堆栈溢出是应用程序在没有任何警告的情况下退出的一个重要原因。除非你做了一些故意导致静默退出的事情,否则未处理的异常(堆栈溢出除外)通常会在应用程序退出前显示某种类型的UI。堆栈溢出是此规则最常见的例外(哦,对不起)。
当然,从非托管或不安全的代码中,几乎肯定有可能以正确的方式扰乱运行时,从而导致静默退出。
关于检测和查看Windows事件日志的建议也很好。
发布于 2008-10-14 15:26:19
异常会导致应用程序“消失”。检查事件日志,查看其中是否有任何内容。
检查任务管理器,查看当窗口消失时进程是否仍然存在。我遇到过资源管理器崩溃和无法重新绘制窗口,直到它是Alt- task或切换到(从任务管理器)。
不要让用户忘记他们正在关闭应用程序。您可能希望在应用程序中添加一些日志逻辑来记录用户发起的闭包。下一次它“消失”时,您可以检查任何日志条目。
发布于 2008-10-14 15:32:55
您可以在FormClosing事件中添加一些逻辑,询问用户这是否是他们真正想要做的事情,然后您可以取消关闭事件,如果一切正常,您的应用程序将继续运行。如果您一直注意到这个问题,但它从不执行您的逻辑,那么您将不得不在调试器中亲自动手。
https://stackoverflow.com/questions/201614
复制相似问题