如何从 windows 服务获得答案

How to get answer from windows service

我有一个 windows 服务和一个应该与该服务通信的 NotifyIcon-Applicaiton(系统托盘)。应用程序应发送命令并从提供进一步通信的套接字的服务接收端口。

该服务覆盖了 OnCustomCommand 方法,但我不知道如何向调用程序发送应答。

    protected override void OnCustomCommand(int command)
    {
        switch (command)
        {
            case 'p':
                // SEND Port number
                break;
            case 's':
                // SEND Service Name
                break;
            case 'n':
                // SEND Notification
                break;
        }

        base.OnCustomCommand(command);
    }

通知图标应用程序

var serviceController = new ServiceController("ATLED Service"); serviceController.ExecuteCommand((int)'p');

您可以通过不同的方式做到这一点

  1. 您可以使用一个 TCP 端口,它正在侦听来自服务器的命令回复
  2. 您可以在应用程序端使用 signalR 并使用它连接服务和应用程序
  3. 您也可以使用共享内存,或者可以是一个文件,该文件是 create/written 由服务提供给应用程序的,或者也可以使用数据库