我有一个应该作为服务实现的现有 GUI 应用程序。基本上,我需要能够远程登录和注销 Windows 2003 服务器并仍然保持该程序运行。
这可能吗?
编辑:在这里进一步完善......我没有来源,这不是我的应用程序。
最佳答案
Windows 服务不能有 GUI,因此您需要摆脱 GUI 或将您的应用程序分成两部分 - 一个没有 UI 的服务和一个“ Controller ”应用程序。如果您有源代码,将非 GUI 代码转换为服务很容易 - Visual Studio 有一个“Windows 服务”项目类型,可以为您处理包装,并且有一个简单的演练向您展示如何创建一个负责安装的部署项目。
如果您选择第二条路线并且需要将一些原始 GUI 代码放入 Controller 中,则 Controller 和服务可以通过 WCF、.NET Remoting 或使用您自己定义的协议(protocol)的普通套接字连接进行通信。如果您使用 Remoting,请务必使用“矮胖”接口(interface),以尽可能少的方法调用来传输数据 - 每次调用都会产生相当大的开销。
如果 UI 相当简单,您可以使用配置文件作为输入和日志文件,或者使用 Windows 事件日志作为输出。
关于windows - 如何将 Windows GUI 应用程序作为服务运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53232/