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