2011-07-01 2 views
2

에 \ 나는 최근에 지금 내 .NET 응용 프로그램은 C로 로그 파일을 작성 실패 윈도우 7로 이동했다.UnauthorizedAccessException는 :</p> <p> 내 TraceListener에서 예외를 던지고있다 : 윈도우 7

A first chance exception of type 'System.UnauthorizedAccessException' occurred in mscorlib.dll 

무엇을할까요? 나는 스튜디오에서 응용 프로그램을 실행하고 있으므로 내 모든 권한을 상속해야한다고 생각하고 내 PC의 관리자입니다.

답변

3

관리자 권한을 활성화하기 위해 상승 모드로 프로그램을 시작하지 않는 한 관리자 인 경우에도 UAC를 사용하는 경우 파일을 C:\에 쓸 수 없습니다.

파일을 실제로는 C:의 루트에 두어서는 안되기 때문에 하위 디렉토리를 만들고 관리자 그룹이 아닌 사용자 계정에 액세스 권한을 부여하는 것이 가장 좋습니다. 파일을 C:\에 실제로 올려 놓고 승격시키지 않으려면 Windows 탐색기를 사용하여 C:\에 대한 쓰기 액세스 권한을 관리자 계정이 아닌 사용자 계정에 부여 할 수 있습니다.

+0

UAC 란 무엇입니까? 설명해주십시오. –

+1

UAC는 관리자 권한을 해제 할 때까지 관리자 권한을 해제하여 작동합니다. 악성 프로그램이 중요한 시스템 파일을 수정하지 못하게하는 보안 조치입니다. Windows 7의 기본 설정은 활성화되어 있습니다. 자세한 내용은 다음을 참조하십시오. http://en.wikipedia.org/wiki/User_Account_Control –

+0

UAC가 무엇인지 모르는 경우 프로그래밍에 대해 더 배워야합니다. – alexandrudicu

0

아마도 UAC가 켜져있을 수 있습니다.

app.config에 프로세스에서 높은 수준의 권한을 사용하도록 지정해야합니다.

기본 생성 된 app.config에는 해당 정보가 있습니다.

+0

오, 그 구성에있는 옵션은 어디 있습니까? –

+0

은 app.config가 아니라 매니페스트에 있습니다. 그러나 응용 프로그램을 실행하는 것만으로도 C의 루트에 로그인 할 수 있기 때문에 과도한 공격을받습니다. –

2

프로그램을 필요한 권한으로 실행해야합니다. 관리자 액세스 권한이있는 사용자 만 시스템 드라이브와 같은 '특수'폴더에 쓸 수 있으므로 응용 프로그램을 처음에는 높은 권한으로 실행해야합니다.

코드의 보안 사용 권한에 대한 내용은 herehere을 참조하십시오.

+0

높은 권한으로 실행하여이를 수정하는 것은 잘못된 접근 방법입니다. 다른 곳에서 로깅하는 것이 더 나은 해결책입니다. –

관련 문제