동일한 응용 프로그램의 두 인스턴스에서 로그 파일에 안전하게 쓰는 방법은 무엇입니까?
문제
매번 1 개의 인스턴스 만 실행할 수있는 응용 프로그램이 있지만 두 번째 인스턴스가 시작되면 첫 번째로 사용될 수있는 공통 로그 파일에 로그인해야합니다.
실행중인 인스턴스 수를 확인하고 처음에 이벤트 로거에 단순히 로그인 할 계획 이었지만 응용 프로그램은 사용자 또는 시스템 컨텍스트에서 실행 중일 수 있으며 EventLog 소스를 사용자로 쿼리하려고 시도 할 때 예외가 발생합니다. 보안 로그가 사용자가 접근 할 수 없으므로 아이디어가 폐기됩니다.
그래서 동일한 응용 프로그램의 2 개의 별도의 인스턴스가 로그 파일에 쓰는 가장 안전한 방법이 무엇인지 알아 내고 싶었습니다.
피할 수없는 경우 기존 추가 프레임 워크를 사용하지 않기를 원합니다.
모든 도움이 감사합니다.
다른 팁
항상 시스템 이벤트 로그에 쓸 수 있습니다. 잠금 장치 나 필요한 것은 없으며 이벤트 뷰어는 일부 사람들에게 신용을주는 것보다 더 강력합니다.
귀하의 의견에 대한 응답으로 다른 사용자는 여기에서 이벤트 로그에 대한 쓰기 권한에 대한 질문을했습니다. 답은이를 수행하는 방법을 설명하는 MSDN 기사와 연결되어 있습니다.
그 질문을 참조하십시오 여기.
원하는 경우 문제를 피할 수 있습니다 ...
이것이 Windows 앱 인 경우 첫 번째 인스턴스를 메시지를 보내고 그만 둘 수 있습니다. 메시지를 받으면 원래 인스턴스가 문제없이 로그 파일에 쓸 수 있습니다.
해킹하는 한 가지 방법은 로그 파일을 메모리 매핑하는 것입니다. 이렇게하면 응용 프로그램의 두 인스턴스가 파일의 동일한 가상 메모리 이미지를 공유합니다. 그런 다음 파일 내부에서 뮤텍스를 구현하는 여러 가지 방법이 있습니다.