C#을 사용해서 프로그램을 만들다 보면 실행 시 액세스 거부 오류를 확인할 수 있습니다. 오늘은 1차적으로 액세스 거부 오류를 우선적으로 해결할 수 있는 실행 권한을 변경하는 방법을 알아보겠습니다.
C# 프로그램 개발 시 특정 객체를 사용하다보면 오류가 발생합니다. 내용은 액세스 거부입니다. 실행 권한을 낮을 경우 객체에 접근할 수 없을 경우 발생하는 메시지입니다. 간단하게 마우스 우클릭을 사용해서 관리자 권한으로 실행하면 정상적으로 동작하지만, 매번 컴파일하면서 개발하기는 쉽지 않습니다. C#에서도 이런 문제를 해결하기 위해서 실행 시 권한을 변경할 수 있는 방법이 있습니다.
먼저 프로젝트 메뉴에서 아래쪽에 있는 프로젝트 속성을 클릭합니다.
좌측 탭 메뉴중에서 아래쪽에 있는 "보안" 메뉴를 선택합니다.
"보안" 메뉴를 선택하면 우측에 있는 "ClickOnce 보안 설정 사용"을 체크하고 저장합니다.
솔루션 탐색기에서 프로젝트 생성 시 없던 app.manifest 파일을 확인할 수 있습니다. 더블클릭해서 파일을 오픈합니다.
app.manifest 파일 상단에 보면 requestedExecutionLevel로 asInvoker, requireAdministrator, highestAvailable 3가지 권한을 선택할 수 있습니다.
아래쪽에 있는 level 항목에 "asInvoker"로 되어 있는 권한을 "requireAdministrator"로 변경하고 저장합니다.
마지막으로 "보안" 메뉴에서 "ClickOnce 보안 설정 사용"을 언 체크하고 저장합니다. 언 체크를 안 하면 기본 권한 밖에 사용할 수 없기 때문에 반드시 체크 해제해야 합니다.
모든 내용을 설정하고 컴파일을 진행하면 위 메시지를 확인할 수 있습니다. "다른 자격 증명을 사용하여 다시 시작"을 선택하면 Visual studio가 재 실행됩니다.
재 실행된 Visual Studio에서 프로젝트 선택 후 컴파일을 진행하면 기존 액세스 거부 오류가 발생하지 않고 정상적으로 프로그램이 실행되면서 특수 객체를 사용할 수 있습니다. 관리자 권한 실행은 WEB 서버처럼 운영체제에 권한이 필요할 경우 꼭 확인해야 하는 항목입니다. 관리자 권한 실행이 필요하다면 꼭 확인하고 설정 후 편리하게 컴파일해보세요.
감사합니다.
'IT 나라 > C#' 카테고리의 다른 글
C# HtmlAgility을 이용한 html 파싱 및 크롤링 사용법 (0) | 2022.06.06 |
---|---|
C# 셀레니움(selenium)을 이용한 ChromeDriver 사용방법 (0) | 2022.06.01 |
C# ML.NET 사용한 머신 러닝 값 예측 (0) | 2022.05.11 |
C# ML.NET 사용한 머신 러닝 Data Classification (0) | 2022.04.28 |