현재 C# 및 .net 프레임 워크 4.5를 사용하여 기존 프로그램의 기능을 확장하는 Windows 서비스를 개발 중입니다.이 서비스는 주 응용 프로그램에서 신호가 지정된 명명 된 이벤트를 기다리는 EventWaitHandleClass (msdn link)에서 차단됩니다. 이런 식으로 뭔가 :EventWaitHandle을 사용하여 명명 된 이벤트를 기다리는 Windows 서비스에 문제가 있습니다.
bool boolWithFalse = false;
string eName = "notification_event";
string usr = Environment.UserDomainName + "\\" + Environment.UserName;
EventWaitHandleSecurity security = new EventWaitHandleSecurity(); //*
EventWaitHandleAccessRule rule = new EventWaitHandleAccessRule(usr, EventWaitHandleRights.Synchronize, AccessControlType.Allow);
security.AddAccessRule(rule);
EventWaitHandle handle = new EventWaitHandle(false, EventResetMode.ManualReset, eName, out boolWithFalse, security);
//... some non relevant code lines here
//This is where the it locks waiting for the named event
var w = EventWaitHandle.WaitAny(new[] { handle }, Timeout.Infinite);
* : EventWaitHandleSecurity MSDN
지금이 내가, 콘솔 응용 프로그램으로 내 프로그램을 실행 내가 의도 한대로 내가 쉽게 기본 응용 프로그램에서 이벤트를 캐치하고이를 처리 할 수 있는지 매력처럼 작동, 하지만, 응용 프로그램을 서비스로 설치하면 동일한 명명 된 이벤트를 기다리지 만 신호를받지 못합니다. 이 서비스는 NT AUTHORITY \ LOCALSERVICE 계정을 사용하여 실행되도록 설정되어 있습니다. 이미 자신의 계정 (progam이 콘솔 응용 프로그램으로 실행되는 동안 사용함)을 사용해 보았지만 아무런 결과가 없습니다.
신호를 생성 한 응용 프로그램이 내 계정으로 실행되는 데 도움이되는 경우. Windows 용 데스크톱 응용 프로그램을 개발하는 초보자이므로 도움을 주셔서 감사드립니다.
스택 오버플로에 오신 것을 환영합니다. 질문을 수정했습니다. http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-the-titles –
알겠습니다. 감사합니다. – George181716