求教C#如何动态地创建多个Windows服务?
如果是静态地创建一个的话那是没有什么问题的,C#里新建一个Windows服务的工程就能简单的新建一个Windows服务出来了,但我想能不能通过动态的方式创建多个Windows服务?请问下有没谁搞过的?求教,谢谢!
[解决办法]
当然可以,你查看下工程下Program.cs文件就会发现:
static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> static void Main() { ServiceBase[] ServicesToRun; // 同一进程中可以运行多个用户服务。若要将 // 另一个服务添加到此进程中,请更改下行以 // 创建另一个服务对象。例如, // // ServicesToRun = new ServiceBase[] {new Service1(), new MySecondUserService()}; // ServicesToRun = new ServiceBase[] { new FolderManagerServer() }; ServiceBase.Run(ServicesToRun); } }
[解决办法]
不是任何程序都可以成为服务的,必须继承ServiceBase的类才行,而你说的动态创建是动态注册系统服务还是外部加载?外部加载的话,你需要监视本地文件夹,插件形式加载dll;动态注册很简单,只要sc命名执行即可。