我有一个(第三方)WinForms应用程序,我需要在Windows Server上保持24/7实时运行。我的第一个想法是编写一个Windows服务,该服务会启动应用程序(使用System.Diagnostics.Process),并在应用程序崩溃或服务器重新启动时重新启动该服务。

这有可能吗?即使服务器上没有用户登录,我也需要启动它。没有人登录时,具有用户界面的应用程序可以运行吗?如果没有,是否有解决方法?

N.B.我不需要以任何方式与应用程序进行交互,只需要启动它即可。

最佳答案

为什么需要保持24/7全天候运行的表单?我可以想象这是一些可能性。


您需要经常执行特定的行为。
它正在打开一个端口,您希望其他应用程序连接到该端口。
您不希望员工能够退出该应用程序。


如果答案是#3,那么Windows服务不是正确的答案,而您尝试做的任何事情都将变成一个巨大的黑客。如果是#1或#2,则需要考虑将单个应用程序分为两个。

对于重复执行的任务,最简单的解决方案是开发控制台应用程序并在Windows Task Scheduler中设置Task。这比Windows服务更容易管理和调试。如果您尝试运行某种套接字服务,那么典型的方法是创建一个没有GUI的应用程序,唯一的访问方法是通过套接字连接。如果WinForm关闭,套接字服务将继续运行,并且WinForm在重新打开时可以获取最新信息。

10-02 01:05
查看更多