Мой EventWaitHandle заявляет, что “Доступ к пути запрещен”, но нет

Для ребенка, я пошел бы с Alice.

Вот другое голосование за Alice. У моих 4 детей была тонна забавы, работающей с ним и изучающей фундаментальные понятия программирования. Конечно, им это - все о социализации с феями и людоедами, но heck проклятая унаследованная система, я продолжаю работать, мог использовать некоторый faries и людоедов также.

15
задан Allen Rice 24 November 2009 в 18:34
поделиться

2 ответа

В коде, который создает дескриптор ожидания для службы Windows, в случае сбоя (как в случае отказа в доступе) вы можете попытаться «открыть существующий дескриптор ожидания» через

EventWaitHandle.OpenExisting(
    @"Global\OurCompany.OurProduct.MyClass.EventWaitHandle",
    EventWaitHandleRights.Synchronize | EventWaitHandleRights.Modify);

. Я не совсем уверен, что на этом этапе поведение останется прежним.

Примечание: Буду признателен за обратную связь. Это потенциальный ответ, поэтому я отвечаю на свой вопрос, и снова я приветствую множество комментариев!

Примечание 2: Удивительно, но применение EventWaitHandleRights.FullControl вместо вышеуказанных флагов ( Synchronize + Изменить ) не работает. Вы должны использовать пример выше.

12
ответ дан 1 December 2019 в 04:41
поделиться

MSDN говорит:

UnauthorizedAccessException - указанное событие существует и имеет безопасность управления доступом, но у пользователя нет EventWaitHandleRights.FullControl.

и

Вызывающий имеет полный контроль над вновь созданным объектом EventWaitHandle, даже если eventSecurity отрицает или не может предоставить некоторые права доступа текущему пользователю.

У вашей службы нет прав на получение существующего события через конструктор EventWaitHandle. (EventWaitHandleRights.FullControl не указан. И ваше именованное событие существует, пока для него открыты дескрипторы.) Вы можете открыть существующее событие, используя EventWaitHandle.OpenExisting.

1
ответ дан 1 December 2019 в 04:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: