반응형

C#을 사용해서 프로그램을 만들다 보면 실행 시 액세스 거부 오류를 확인할 수 있습니다. 오늘은 1차적으로 액세스 거부 오류를 우선적으로 해결할 수 있는 실행 권한을 변경하는 방법을 알아보겠습니다.

C# 프로그램 개발 시 특정 객체를 사용하다보면 오류가 발생합니다. 내용은 액세스 거부입니다. 실행 권한을 낮을 경우 객체에 접근할 수 없을 경우 발생하는 메시지입니다. 간단하게 마우스 우클릭을 사용해서 관리자 권한으로 실행하면 정상적으로 동작하지만, 매번 컴파일하면서 개발하기는 쉽지 않습니다. C#에서도 이런 문제를 해결하기 위해서 실행 시 권한을 변경할 수 있는 방법이 있습니다.

먼저 프로젝트 메뉴에서 아래쪽에 있는 프로젝트 속성을 클릭합니다.

좌측 탭 메뉴중에서 아래쪽에 있는 "보안" 메뉴를 선택합니다.

"보안" 메뉴를 선택하면 우측에 있는 "ClickOnce 보안 설정 사용"을 체크하고 저장합니다.

솔루션 탐색기에서 프로젝트 생성 시 없던 app.manifest 파일을 확인할 수 있습니다. 더블클릭해서 파일을 오픈합니다.

app.manifest 파일 상단에 보면 requestedExecutionLevel로 asInvoker, requireAdministrator, highestAvailable 3가지 권한을 선택할 수 있습니다.

아래쪽에 있는 level 항목에 "asInvoker"로 되어 있는 권한을 "requireAdministrator"로 변경하고 저장합니다.

마지막으로 "보안" 메뉴에서 "ClickOnce 보안 설정 사용"을 언 체크하고 저장합니다. 언 체크를 안 하면 기본 권한 밖에 사용할 수 없기 때문에 반드시 체크 해제해야 합니다.

모든 내용을 설정하고 컴파일을 진행하면 위 메시지를 확인할 수 있습니다. "다른 자격 증명을 사용하여 다시 시작"을 선택하면 Visual studio가 재 실행됩니다.

재 실행된 Visual Studio에서 프로젝트 선택 후 컴파일을 진행하면 기존 액세스 거부 오류가 발생하지 않고 정상적으로 프로그램이 실행되면서 특수 객체를 사용할 수 있습니다. 관리자 권한 실행은 WEB 서버처럼 운영체제에 권한이 필요할 경우 꼭 확인해야 하는 항목입니다. 관리자 권한 실행이 필요하다면 꼭 확인하고 설정 후 편리하게 컴파일해보세요.

감사합니다.

반응형

+ Recent posts