如何从Windows服务获取答案

时间:2019-10-28 12:43:18

标签: c# windows-services servicecontroller systray

我有一个Windows服务和一个NotifyIcon-Applicaiton(Sys-Tray),该服务应与该服务进行通信。该应用应该发送命令并从服务中接收端口,以提供进一步通信的套接字。

该服务会覆盖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 个答案:

答案 0 :(得分:1)

可以有不同的方法

  1. 您可以使用TCP端口,该端口正在侦听来自服务器的命令答复
  2. 您可以在应用程序端使用signalR并使用它来连接服务和应用程序
  3. 您还可以使用共享内存,或者可以是当有应用程序存在时由服务创建/写入的文件,也可以使用数据库