В общем у меня есть свои собственные службы, например: Service1, Service2, Service3 ... ServiceN. Данные службы связаны друг с другом и не могут быть запущены пока предыдущая служба не будет запущена, то есть если не запущена служба Service1, то служба Service2 не сможет запустится и т.д.
Мне нужно написать службу, которая по порядку запускала бы эти службы. Я создал службу StartService и для примера через нее запустил службы по порядку, но столкнулся с проблемой: службы запускаются только тогда, когда будет остановлена текущая служба (StartService).
То есть получается мне нужно запускать службу Service1, после чего остановить свою службу StartService что бы запустилась служба Service1, после чего опять необходимо запустить свою службу StartService. Также нужно перед запуском каждой службы делать остановку выполнения кода на 5-10 секунд (что-то типо sleep), что бы предыдущая запущенная служба завершила свои манипуляции.
Вопрос как это сделать? Как заставить службу перезапускать саму себя?
Пример кода:
namespace WindowsService
{
static class Program
{
static void Main()
{
// Для запуска служб
ServiceController service;
// Текущая служба
ServiceController currentService = new ServiceController("StartService");
var ServicesToRun = new ServiceBase[]
{
new Service1()
};
ServiceBase.Run(ServicesToRun);
service = new ServiceController("Service1");
// Если служба не запущена
if (service.Status != ServiceControllerStatus.Running)
{
// Запускаем службу
service.Start();
// Перезапускаем текущую службу (Это не правильно)
currentService.Stop();
currentService.Start();
}
service = new ServiceController("Service2");
if (service.Status != ServiceControllerStatus.Running)
{
// Запускаем службу
service.Start();
// Останавливаем текущую службу
currentService.Stop();
}
}
}
}
На другом форуме подсказали что можно запускать службы с помощью батника и не нужна создавать службу для запуска служб. Я об этом изначально не подумал. Сделал батник:
@echo on
net start Service1
SLEEP 10
net start Service2
SLEEP 10
net start Service3
SLEEP 10
while (service.Status == ServiceControllerStatus.Stopped)
{
Thread.Sleep(1000);
service.Refresh();
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как из строки с предложением сделать массив слов, содержащий слова и пробелы в C#? Например, из строки "I walk with" должен получиться массив, содержащий...
Пишу программу, в которой необходимо в TreeView (в узлах всех уровней) выделять отдельные слова, указанные в словаре, жирным шрифтомПоискав решение...
Вопрос такой, как вставить картинку в тело сообщения? Искал в интернете, находил AlternateView jpeg_view = new AlternateView, но не помогаетсообщение на почте...