gpt4 book ai didi

c# - 即使发生未处理的异常,也要保持应用程序运行

转载 作者:可可西里 更新时间:2023-11-01 08:54:07 26 4
gpt4 key购买 nike

什么?
我正在开发一个需要保持 24/7 全天候运行的控制台应用程序无论如何
有什么方法可以阻止多线程应用程序被“中发生的一些未处理的异常炸毁”某处的一些线索”?

为什么?
请不要给出诸如“你应该管理所有异常”、“这永远不应该发生”等类(class)。我有我的理由:我们正在测试部署,我们需要保持它的运行,记录异常,并再次重启所有线程。如果任何计划外发生并导致抛出未处理的异常,则需要检测它并调用一些方法来重新启动所有线程(由于层设计,原子性是不可能的)

话虽如此,我知道如果应用程序因 UnhandledException(我已经实现)而崩溃,则可能无法从“内部”重新启动应用程序。

到目前为止,我已经使用 Quartz.net 的 FileScan Job 和一个标志文件来检测类似的东西并从外部重新启动应用程序。但这对我来说听起来很老套。我想找到更干净、不那么快和脏的东西。

DownVoting/Sniping 警告:我知道这可能无法“按原样”进行。
请发挥创意/提供帮助,而不是突然批评,并将其更多地视为“开放性问题”

最佳答案

如果它无论如何都要 24/7 运行,为什么不只 write it as a Windows service并利用 Windows 内置的恢复选项?

Configuring Recovery Services

这种方法的额外优势是能够在机器重启后继续存在,并且它会在系统事件日志中记录故障/重启。

关于c# - 即使发生未处理的异常,也要保持应用程序运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8823393/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com