需要通过隐形WinForm应用程序替换Windows服务的建议

我需要一个后台应用程序来支持我的客户端应用程序,无论主客户端应用程序是否正在运行,它都应始终在客户端计算机上运行。 Windows服务是我的第一选择,但我遇到的Windows服务问题包括:通过主客户端应用程序轻松控制Windows服务,向Windows服务发布和安装补丁以及Windows服务无法运行时进行故障排除。 所以,我开始考虑Windows服务的替代品,发现没有可见表单的Windows窗体应用程序可以为我做。这个不可见的应用程序应该从系统启动开始并始终保持运行,完成Windows服务所做的所有工作。但在我深入研究开发之前,我想探索这种方法的优缺点。 有关这种方法的任何建议/意见?     
已邀请:
您的要求更适合Windows服务。 Windows服务的主要优点是,只要系统启动,它就会立即启动,无论是否有人登录系统。 要解决部署问题,可以将业务逻辑构建为单独的程序集,并使用Windows服务调用必要的功能。这样您就可以只部署修改后的程序集。 具有不可见形式的Winform应用程序将无法实现此目的。 HTH     
那是不可能的。用户模式应用程序必须由用户启动,并且在该用户注销时不会继续运行。这就是
SessionEnding
事件的目的:允许您在用户注销或计算机关闭时正常关闭应用程序。您不仅可以在系统启动时启动某些操作并始终保持运行状态。 你需要一个Windows服务。但您应该知道,在Windows Vista及更高版本中,服务无法直接与用户交互。它们在单独的进程中运行,并且不能显示自己的UI。从问题中确切地知道您的需求是什么并不清楚,但这是Windows服务的一个重要限制,值得考虑。一个合适的设计确实不应该要求这样,但显然有很多人对这种新的,更安全的行为感到惊讶。我在这个问题和另一个问题的相关答案中更详细地解释了这一点。     

要回复问题请先登录注册