我需要一个后台应用程序来支持我的客户端应用程序,它应该始终在客户端机器上运行,而不pipe主客户端应用程序是否正在运行。
Windows Service是我的第一select,但是我面对的Windows Service的问题是:通过主客户端应用程序轻松控制Windows服务,向Windows服务发布和安装修补程序,以及在Windows服务无法运行时进行故障排除。
所以,我开始考虑替代Windows服务,并发现Windows窗体应用程序没有可见的forms可以为我做。 这个无形的应用程序应该从系统启动开始,并始终运行,完成Windows服务所要做的所有工作。 但在进一步深入发展之前,我想探讨这种方法的优缺点。
对此方法有何build议/评论?
您的要求更适合于Windows服务。 Windows服务的主要优点是系统一旦启动就会启动,不管有没有人登录系统。
为了解决部署问题,您可以将业务逻辑构建到单独的程序集中,并使用Windows服务调用必要的功能。 这样你可以只部署修改后的程序集。
Winform应用程序不可见的形式将不起作用。 HTH
这是不可能的。 用户模式应用程序必须由用户启动,并且在用户注销时不会继续运行。 这就是SessionEnding
事件的目的:允许您在用户注销或计算机关闭时正常关闭应用程序。 你不能只是在系统启动时启动一些东西,并保持它始终运行。
你需要一个Windows服务。 但是您应该知道,在Windows Vista及更高版本中,服务不能直接与用户交互。 他们运行在一个单独的进程,并限制显示自己的用户界面。 从问题的角度来看,并不清楚您的需求是什么,但这是Windows Service的一个重要限制,值得考虑。 一个适当的设计真的不应该要求这个,但显然有很多人这个新的,更安全的行为是一个真正的惊喜。 我在这个问题和这个问题的相关答案中更详细地解释了这个问题 。