代码之家  ›  专栏  ›  技术社区  ›  bugfixr

Windows Service Plus图形用户界面#

  •  5
  • bugfixr  · 技术社区  · 16 年前

    我见过一些作为Windows服务运行的应用程序,但仍然可以提供一个允许用户查看实际情况的GUI。

    例如,我们有一个生成报告的Windows服务。管理员希望看到的统计信息有很多,例如有多少报告排队,有多少RAM在使用,平均构建时间等。

    我们要做的是为管理员提供一种查看此信息的方法-例如,可以连接到窗口服务以收集和显示此信息的应用程序…或者是一种应用程序本身可以提供自己的GUI并在需要时显示它的方法。现在,应用程序唯一能做的就是创建一个日志文件。

    有办法吗?

    3 回复  |  直到 16 年前
        1
  •  8
  •   George Mauer    16 年前

    几个。

    1. 有某种组件可以挂接到Windows服务并通过远程处理将信息发送到另一个应用程序。如果你有一个IOC容器,巧妙地使用装饰师就可以做到。
    2. 使用服务总线、msmq、wcf、咆哮或类似的东西来广播有趣的信息。应用程序只需要知道如何连接。
    3. 公开一个HTTP端点或某些内容,以便有人可以在其中连接并下载有关Windows服务的信息
    4. 或者简单地创建一个单页WinForms应用程序,它每隔一段时间读取一次日志文件,并显示有趣的结果。

    (注意最后一个提示是最简单的提示,请这样做。)

        2
  •  0
  •   Brett Allen    16 年前

    理想情况下,服务与用户界面完全分离,原因很多,我都无法进入。

    但是,您可以使用某种IPC方式来查看此类信息。我的建议是使用远程处理从服务请求所需的数据,然后根据需要将任何报表或图形构建到单独的应用程序中。

        3
  •  0
  •   John Knoeller    16 年前

    服务不允许进行UI API调用(消息框的一种特定形式除外)。所以看起来有wser接口的服务实际上是两个进程。服务进程正在使用某种专有的反向通道与标准的Windows应用程序通信。可以是命名管道、套接字或一大块命名共享内存。