У меня есть один проект установки сервисов, который устанавливает несколько сервисов. Это здорово, но одно необработанное исключение в любой отдельной службе остановит все службы, которые были установлены этим установщиком.
Код для установщика выглядит примерно так
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Service1() ,
new Service2() ,
...
};
ServiceBase.Run(ServicesToRun);
Таким образом, после установки службы я вижу несколько отдельных служб в окне управления службами Windows, и каждый из них может быть запущен, остановлен, приостановлен, возобновлен независимо.
Однако, если кто-то переносит необработанное исключение, все они останавливаются.
В идеале остановится только служба, в которой возникла проблема, а другие службы продолжат свой веселый путь.
Кто-нибудь может предложить способ сделать это без создания действительно отдельного проекта установщика для каждой службы?