窗口服务中的全局处理exception

我有一个Windows服务作为服务器运行。 但是,服务器有时会立即停止由未处理的错误。 请帮我讲解如何处理全局exception。 谢谢。

听起来像你正试图以错误的方式解决问题……

当您的程序(或服务)由于未处理的错误而崩溃时,解决方案不是要弄清楚在哪里以及如何“处理” 所有未处理的错误,以便您可以忽略它们并继续执行。 我在这个答案中更清楚地说明了这个观点,但简短的版本是当你遇到未处理的exception时, 正确的做法是崩溃 。 正如原答案所引述:

发生未处理的exception这一事实意味着服务器处于意外状态。 通过捕获exception并说“不要担心,这一切都很好”,最终导致服务器运行损坏。

[。 。 。 ]

捕获所有exception并让进程继续运行假定服务器可以从意外故障中恢复。 但这很荒谬。 你已经知道服务器是不可恢复的吐司:它崩溃了!

更好的方法是让服务器崩溃,以便在发生故障时捕获崩溃转储。 现在你有机会弄清楚发生了什么。

事实上, 真正的解决方案包括找出未处理exception的根本原因并修改代码以防止首先发生错误。

我们无法帮助您做到这一点,除非您发布您正在获得的确切exception消息,并且最好是完整的堆栈跟踪。 但是你肯定希望保留你所获得的调试信息,而不是想出一种完全忽略它的方法 – 这是实际解决问题的唯一方法。

如果你仍然坚持忽略所有善意的建议,那么你会发现“坚持你的头脑并忽视它”的方法。

您可以尝试使用AppDomain.CurrentDomain.UnhandledException事件,但我不确定它是否会捕获每个未处理的exception。