Mandrake

78 7

О чем думаете?

 -Музыка

 -Поиск по дневнику

люди, музыка, видео, фото
Поиск сообщений в Mandrake

 -Подписка по e-mail

 
Получать сообщения дневника на почту.

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Дата регистрации: 29.06.2003
Записей в дневнике: 3812
Комментариев в дневнике: 15433
Написано сообщений: 25517
Популярные отчеты:
кто смотрел дневник по каким фразам приходят

Перезапуск сервиса самим сервисом

Пятница, 17 Октября 2008 г. 16:51 (ссылка) + в цитатник

Оказывается, виндовый сервис перезапустить сам себя не может. Он может себя остановить, но без посторонней помощи запуститься уже не сможет. Начал копать и искать обходные пути. Докопался до динамической компиляции кода в память при помощи CSharpCodeProvider и исполнения этого кода из памяти. Только вот код исполняется из того же процесса (на сколько я понял), что не есть хорошо, так как ни чем мне в этом случае не помогает. Начал копать дальше и искать аналог *nix-ового fork(). Докопался до CreateProcess() и тут ко мне пришло озарение. Написал отдельный исполняемый файл в несколько строчек, в котором инициализирую контроллер сервиса, потом его останавливаю, жду остановки и запускаю. Из самого же сервиса запускаю исполняемый файл отдельным процессом при помощи класса Process. Всё работает замечательно.
Рубрики:  Программирование
Теги:  

 

Добавить комментарий:
Текст комментария: показать смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
Подписаться на комментарии
Подписать картинку

Найти дневники