无法从命令行或调试器启动服务

Boo*_*ang 28 c# windows service

我已经创建了一个Windows服务并将其安装在服务器上.它似乎工作得很好,即做其意图.但是当我通过远程桌面登录服务器时,我收到以下消息:

无法从命令行或调试器启动服务.首先必须安装Windows服务(使用installutil.exe),然后使用ServerExplorer,Windows服务管理工具或NET START命令启动.

我点击然后转到服务资源管理器检查服务,它开始正常.没有错误报告.

我安装了这个,所以它使用Local System作为"Log On As".

谢谢.

小智 41

MainProgram类中更改方法如下:

    /// <summary>
    ///   The main entry point for the application.
    /// </summary>
    private static void Main()
    {
        var myService = new MyService();
        if (Environment.UserInteractive)
        {
            Console.WriteLine("Starting service...");
            myService.Start();
            Console.WriteLine("Service is running.");
            Console.WriteLine("Press any key to stop...");
            Console.ReadKey(true);
            Console.WriteLine("Stopping service...");
            myService.Stop();
            Console.WriteLine("Service stopped.");
        }
        else
        {
            var servicesToRun = new ServiceBase[] { myService };
            ServiceBase.Run(servicesToRun);
        }
    }
Run Code Online (Sandbox Code Playgroud)

您必须向Start服务类添加一个方法:

    public void Start()
    {
        OnStart(new string[0]);
    }
Run Code Online (Sandbox Code Playgroud)

在项目属性的"应用程序"选项卡中将项目的输出类型更改为"控制台应用程序"而不是"Windows应用程序".现在您可以按F5开始调试,但您仍然可以将可执行文件作为Windows服务运行.