我有一个安装多个服务的服务安装程序项目。这很好,但是任何单个服务中的一个未经处理的异常都将停止此安装程序安装的所有服务。
安装程序的代码如下所示
ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new Service1() , new Service2() , ... }; ServiceBase.Run(ServicesToRun);
因此,一旦安装了服务,我就可以在Windows服务管理窗口中看到几个单独的服务,每个服务都可以独立地启动、停止、暂停和恢复。
然而,如果一个遭受未处理的异常,那么它们都会停止。
理想情况下,只有出现问题的服务才会停止,其他服务将继续以他们愉快的方式进行。
有人能在不为每个服务创建一个真正独立的安装程序项目的情况下提出这样做的方法吗?
在最高级别为每个服务添加独立的错误处理,这样并不会影响所有服务。
如果错误不严重,您可能还需要添加自动服务重新启动。只要确保在服务关闭和错误重启的情况下添加大量日志。