我见过一些作为 Windows 服务运行的应用程序,但仍然可以提供一个 GUI,让用户可以看到实际发生的事情。
例如,我们有一个构建报告的 Windows 服务。管理员希望看到许多统计信息,例如排队的报告数量、正在使用的 ram 数量、平均构建时间等。
我们想要做的是为管理员提供一种查看此信息的方式 - 例如可以连接到窗口服务以收集和显示此信息的应用程序......或者应用程序本身可以的方式提供自己的 GUI 并在需要时显示它。现在,该应用唯一要做的就是创建一个日志文件。
有办法吗?
最佳答案
几个。
- 有某种组件可以连接到您的 Windows 服务并通过远程处理将信息发送到另一个应用程序。如果你有一个 IoC 容器,巧妙地使用装饰器就可以做到这一点
- 使用服务总线、MSMQ、WCF、Growl 或类似的东西来广播有趣的信息。应用程序只需要知道如何 Hook 。
- 公开一个 HTTP 端点或其他人可以连接到 Windows 服务并下载信息的东西
- 或者只是创建一个单页的 WinForms 应用程序,它会经常读取日志文件并显示有趣的结果。
(请注意,最后一个是迄今为止最简单的 - 提示提示,执行此操作。)
关于c# - Windows 服务加 GUI/C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1942688/