我有一个(第 3 方)WinForms 应用程序,我需要它在 Windows 服务器上保持 24/7 全天候运行。我的第一个想法是编写一个 Windows 服务来启动应用程序(使用 System.Diagnostics.Process
)并在应用程序崩溃或服务器重新启动时重新启动它。
这可能吗?即使没有用户在服务器上登录,我也需要它启动。具有用户界面的应用程序可以在没有人登录时运行吗?如果否,是否有解决方法?
注意我不需要以任何方式与应用程序交互,我只需要启动它。
最佳答案
为什么您需要让表格全天候运行 24/7?以下是我能想到的一些可能性。
- 您需要经常发生特定行为。
- 它正在打开您希望其他应用程序连接到的端口。
- 您不希望员工能够退出应用程序。
如果答案是#3,那么 Windows 服务不是正确的答案,您尝试的任何事情都只会变成一个巨大的黑客攻击。如果它是 #1 或 #2,您需要考虑将您的单个应用程序分成两个。
对于重复性任务,最简单的解决方案是开发控制台应用程序并在 Windows 任务计划程序中设置任务。这比 Windows 服务更易于管理和调试。如果您尝试运行某种套接字服务,典型的方法是创建一个没有 GUI 的应用程序,访问它的唯一方法是通过套接字连接。如果 WinForm 关闭,socket 服务会继续运行,WinForm 重新打开时可以获取最新信息。
关于c# - 从 Windows 服务启动 WinForms 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19100751/