如何创建一个独立的exe应用程序的Windows服务?

Grz*_*nio 3 .net c# windows-services

我想创建一个控制台exe应用程序,它可以作为独立的应用程序以及Windows服务运行.有可能吗?使用svchost实际上有什么好处?

Ars*_*yan 15

重写你的windows服务的主要方法,如果你使用parametr -c运行它将是控制台应用程序,是的,不要忘记从项目的属性窗口将项目类型更改为控制台

 public static void Main(string[] args)
 {
      Service service = new Service();
      if (args.Contains("-c", StringComparer.InvariantCultureIgnoreCase) || args.Contains("-console", StringComparer.InvariantCultureIgnoreCase))
      {
           service.StartService(args);
           Console.ReadLine();
           service.StopService();
           return;
      }
      ServiceBase[] ServicesToRun = new ServiceBase[] 
                                    { 
                                        service 
                                    };
      ServiceBase.Run(ServicesToRun);           
  }
Run Code Online (Sandbox Code Playgroud)

StartService和StopService只调用服务的覆盖OnStart和OnStop方法