Здравствуйте, Engineer, Вы писали:
E>Здравствуйте, AndrewVK, Вы писали:
AVK>>Здравствуйте, Engineer, Вы писали:
E>>>.NET-службы в автостарте работают плохо. Им часто не хватает 30 секунд, выделяемых SCM на инициализацию, для загрузки CLR, JIT-компиляции и тому подобного. Напиши простой unmanaged-сервис на С++ (типа Guardian), который будет делать только и того, что запускаться в режиме Auto и периодически (раз в 5-10 секунд) проверять состояние основного .NET-сервиса и запускать его, если он не запущен. Сервис .NET установи в режим загрузки Manual. Так можно безболезненно запускать целую группу .NET-сервисов.
AVK>>А зачем тогда .NET делать отдельным сервисом? Поднимать тогда уж сразу CLR самостоятельно и не пользоваться штатной нетовской заглушкой.
E>Из условий задачи видно, что .NET-сервис у человека уже готов и работает. Единственная проблема — через раз запускается в режиме Auto. Чтобы решить её минимальной кровью, ничего работающего не трогая, вполне достаточно приставить к медленному .NET-сервису кого-то поменьше и пошустрей. 15 строк кода этого "поменьше и пошустрей" будут явно проще, чем ручная реализация загрузчика ОС
.
Замечена ещё одна особенность. Не стартует в случае некорректного выключения питания. В случае же, если сервис успешно останавливает свою работу, то после он успешно стартует.