我使用我在Delphi中创建的服务应用程序。我的问题是它有时会被操作系统终止,我不知道为什么会这样。
当我参加系统活动时,我可以找到像这样的信息:
Event ID: 7034,[...]服务意外终止。它已经完成了这个时间。
我知道你不能给我一个答案,为什么会发生这种情况,但是你能否告诉我应该注意什么来找到这种行为的原因?例如,什么样的异常可以使操作系统关闭应用程序。
提前谢谢。
答案 0 :(得分:8)
制作一个Eurekalog或MadExcept的调试版本,它会告诉你它在哪里爆炸,堆栈是什么样的,内存等等。
他们还可以自动重启您的应用。不确定是否可以在服务上完成,但对于常规应用程序,它可以。他们还可以通过电子邮件向您发送转储,甚至直接发布到FogBugz或Mantis等bug跟踪器。如果您没有立即找到吸烟枪,这些措施将有所帮助,并且需要将故障排除/调试作为长期解决方案。也就是说,即使每月只有一次甚至一次崩溃的事情,也更容易告诉你的老板“我在看日志”而不是“我真的不知道”。
答案 1 :(得分:3)
确保捕获所有线程的Execute方法中的所有异常假设您正在使用TThread后代)。如果有任何通过操作系统,这可能会导致它终止您的服务。