首页 > 解决方案 > 在 Visual Studio 中调试时可以连接到由 Topshelf 创建的服务吗?

问题描述

我找到了一个使用 Topshelf 创建服务并在 Visual Studio 中运行它的教程。它起作用了,因为该服务不需要来自外部的任何输入;它只是不停地在计时器上做某事。但是,如果我使用 Topshelf 创建一个服务,该服务接受来自另一个进程的命令,并在 Visual Studio 中运行它,那么是否可以从另一个进程连接到该服务?还是不可能?

例如,如果服务有这个,

    public void OnCustomCommand(int command)
    {
        Console.WriteLine("Got " + command);

我在 Visual Studio 中运行了该服务。我可以使用这样的代码从另一个进程连接到服务

ServiceController sc = new ServiceController("YOURServiceName", Environment.MachineName);
ServiceControllerPermission scp = new ServiceControllerPermission(ServiceControllerPermissionAccess.Control, Environment.MachineName, "YOURServiceName");//this will grant permission to access the Service
scp.Assert();
sc.Refresh();

sc.ExecuteCommand((int)YourMethods.methodX);

标签: c#topshelf

解决方案


推荐阅读