繁体   English   中英

一两个星期后,C#应用程序关闭

[英]C# application closing after a week or two

Windows Server 2008 R2

我有一个旨在无限期运行的C#控制台应用程序。

因此,我将Console.readLine()放入其中以尝试使其保持正常运行。

但是,也许一周后,我会回到它的位置,它已经关闭,就好像有人按下了X按钮并关闭了窗口一样。

如果它崩溃了,我会得到一个堆栈跟踪,并且像其他任何程序崩溃时一样,得到“此程序意外关闭”,然后它会等待用户输入,但我什至看不到。

一两个星期后我才回来,控制台窗口不再显示。

为什么是这样?

我通过双击桌面上的.exe启动应用程序。

如果此应用程序确实在更短的间隔内定期运行,则Windows服务是一种更好的方法。 同样,无法通过Enter键关闭Windows服务。

如果一天需要做几次或类似的工作,也许您可​​以考虑通过“ Scheduled Tasks定期启动应用Scheduled Tasks

无论如何,保持这样的控制台应用程序打开是受“意外”关闭的更多原因的影响。 例如,除了系统重新启动之外,用户还可能注销。

在当前解决方案上,您可以通过添加日志文件来检测正在发生的情况:

  1. 记录所有异常(包括应用程序域未处理的异常)。
  2. 在按下Enter键时记录,因此ReadLineReadLine 您将能够确定发生了什么。
  3. 连接到SystemEvents.SessionEnding事件并记录下来(以注销,重新启动等)。

例如,您可以将日志框架与log4net轻松集成。

如评论中所述,请确认计算机未启用自动更新,因为它们会干扰应用程序的运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM