无法使用服务库启动调试会话

本文关键字:启动 调试 会话 服务 | 更新日期: 2023-09-27 18:34:15

我尝试使用ServiceProcess.ServiceBase调试Windows服务,而不是在本地安装服务。 我的项目中有一个小型控制台应用程序,其方法如下

static void Main()
{
    ServiceBase[] ServicesToRun;
    ServicesToRun = new ServiceBase[] 
    { 
        new MyProcessorService() 
    };
    ServiceBase.Run(ServicesToRun);
}

这个项目是解决方案的一部分,所以我将这个项目设置为启动,设置了一些断点并按 F5,但我仍然收到关于无法调试服务的消息......"无法从命令行或调试器启动服务...."

我错过了什么?

无法使用服务库启动调试会话

不能在交互式上下文中启动服务(除非服务用户有权这样做)。

if (Environment.UserInteractive)
{
    //Instantiate service object and call a method to start the service manually here...
}
else
{
    //Normal ServiceBase.Run goes here....
}

ServiceBase派生类上的手动启动方法通常如下所示:

 internal void TestStartupAndStop(string[] args)
 {
     this.OnStart(args);
     Console.ReadLine();
     this.OnStop();
 }