Я изменил работающую службу Windows, которая всегда запускалась заранее. После добавления ссылки System.Management она теперь иногда не запускается автоматически. Я получаю следующую ошибку:
Служба не может быть запущена.
System.Runtime.InteropServices.COMException
(0x80010002): вызов был отменен
фильтр сообщений. (Исключение из
HRESULT: 0x80010002
(RPC_E_CALL_CANCELED))
Я нашел другой пост здесь на SO с кем-то, имеющим ту же проблему
Почему моя служба .Net Windows не запускается автоматически после перезагрузки?
Однако предлагаемое решение состояло в том, чтобы запускать службу после запуска служб, от которых она зависит. Однако, когда я перехожу на вкладку Зависимости для моего сервиса, я вижу:
Должен ли я просто использовать обходной метод перевода потока в спящий режим или есть более правильный способ заставить этот сервис запускаться правильно? Это происходит потому, что .NET не запустился до запуска моей службы?
Спасибо
Томек
EDIT: я добавил оператор try-catch, чтобы перехватить исключение. Вот код, который я добавил к методу OnStart () моего сервиса (именно там создается исключение)
try
{
_watcher = new ManagementEventWatcher(query);
_watcher.EventArrived += new EventArrivedEventHandler(watcher_EventArrived);
_watcher.Start();
}
catch (Exception ex)
{
EventLog.WriteEntry("Could not create Sleep/Resume watcher" + ex.Message);
}
Служба запускается сейчас, но без добавленной мной функциональности. Я новичок в .NET, но я взял код наблюдателя из примера, который нашел в Интернете, поэтому я уверен, что он правильный. Журнал событий отображает то же исключение:
Не удалось создать наблюдателя режима ожидания / сна. Фильтр сообщений отменил вызов. (Исключение из HRESULT: 0x80010002 (RPC_E_CALL_CANCELED))