我已经编写了一个可执行进程,它运行以下代码行:
immediateShutdownEvent = new EventWaitHandle(false, EventResetMode.ManualReset, "Global\immediateShutdownEvent", out createdNew, security);
我可以在这个可执行进程运行时设置这个事件,它工作得很好,但是一旦这个可执行进程作为一个进程被杀死(例如,如果你手动杀死这个进程,那么从任务管理器中),并且我在杀死它之后立即自动重新启动这个进程,我得到一个"System"。UnauthorizedAccessException:对路径"Global immediateshudownevent"的访问被拒绝,即使它在SYSTEM的相同上下文中运行。为什么会这样,我该如何解决?
我想出了如何通过使用OpenExisting()和抓取WaitEventHandle来绕过它…如果它存在,那么关闭它,尽管您当前的帐户需要访问权限才能删除此事件。