Почему мой EventWaitHandle получает исключение UnauthorizedAccessException?

Я кодировал исполняемый процесс, который выполняет следующую строку кода:

immediateShutdownEvent = new EventWaitHandle(false, EventResetMode.ManualReset, "Global\\immediateShutdownEvent", out createdNew, security);

Я могу установить это событие, когда этот исполняемый процесс работает, и он работает нормально, но как только исполняемый файл прерван как процесс (например, из диспетчера задач, если вы вручную уничтожаете процесс), и я автоматически перезапускаю процесс сразу после завершения при этом я получаю "System.UnauthorizedAccessException: доступ к пути" Global \ немедленный обмен данными "запрещен", даже если он работает в том же контексте SYSTEM. Почему это и как я могу это исправить?

1 ответ

Решение

Я выяснил, как обойти это, используя OpenExisting() и захватив WaitEventHandle... затем закрыв его, если он существует, хотя это означает, что вашей текущей учетной записи необходимы права доступа для удаления этого события.

Другие вопросы по тегам