Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 1개 있습니다.)

UWP(유니버설 윈도우 플랫폼) 앱에서 global::System.Diagnostics.Debugger.Break 예외 발생 시 대응 방법

경력자들에게는 당연한 것이, 처음 개발하는 분들에게는 완전 새로운 문제일 수 있음을 다음의 질문을 통해서 느끼게 되었습니다. ^^

유니버셜앱 예외 발생: 'System.UnauthorizedAccessException' 해결방법
; https://social.msdn.microsoft.com/Forums/ko-KR/8b403c9c-0023-4c38-a695-829eb22309aa/-systemunauthorizedaccessexception-?forum=visualcsharpko

유니버셜 앱으로 서버를 생성 하였는데요. 여기서 request로 들어간 정보를 어떻게 화면에 출력 해야 할지 모르겠습니다. 
; https://social.msdn.microsoft.com/Forums/ko-KR/2f41a641-1af0-4b64-b844-05f049fb4f81/-request-?forum=visualcsharpko

현재 UWP 앱을 개발하면서 예외가 발생하면 보통 다음과 같이 App.g.i.cs 파일의 Debugger.Break를 가리키게 됩니다.

first_change_in_uwp_1.png

App.UnhandledException 이벤트가 걸린 것인데, 원인은 간단합니다. 프로그램 실행 시 어디선가 예외가 발생했고 그곳의 코드는 개발자에 의해 try/catch가 씌워지지 않았기 때문에 원래는 프로그램 종료가 되어야 하지만 현재 Debugger가 붙어 있는 상태이므로 (global::System.Diagnostics.Debugger.IsAttached) 친절한 비주얼 스튜디오는 예외가 발생했음을 개발자에게 알려주었던 것입니다.

문제는? 도대체 어떤 문제로 인해 들어왔는지 알 수가 없다는 것이죠. ^^

걱정하지 마십시오. 금방 찾아낼 수 있습니다. 위와 같이 디버거가 멈췄을 때 "Output" 창을 보면 구체적으로 어떤 예외로 인해 프로그램이 종료할 뻔 했는지를 알려주는 것을 볼 수 있습니다.

first_change_in_uwp_2.png

위의 화면에서는 System.UnauthorizedAccessException 예외인데요. 이제 "Debug" / "Windows" / "Exception Settings" (단축키: Ctrl+Alt+E) 메뉴를 선택하고 "Search" 패널에 System.UnauthorizedAccessException 문자열을 입력한 후 나타나는 하단의 예외 항목을 체크해주시면 됩니다.

first_change_in_uwp_3.png

이렇게 설정하고 다시 실행하여 예외를 재현하면 다음과 같은 식으로 문제가 발생했던 바로 그 라인에서 디버거가 멈추게 됩니다.

first_change_in_uwp_4.png

에러 메시지에 나오듯이,

Exception thrown: 'System.UnauthorizedAccessException' in App1.exe

WinRT information: At least one of either InternetClientServer or PrivateNetworkClientServer capabilities is required to listen for or receive traffic

Additional information: Access is denied.



At least one of either InternetClientServer or PrivateNetworkClientServer capabilities is required to listen for or receive traffic

If there is a handler for this exception, the program may be safely continued.

권한 설정이 부족하다는 것을 알 수 있고 이에 대처해 문제를 해결해 주시면 됩니다.




아니... 그럴 거면 미리 그 설정을 비주얼 스튜디오에서 기본값으로 했으면 더 좋았지 않았겠습니까? 라고 묻는 분들도 계실 텐데요. 이게 참 그렇습니다. 왜냐하면 의도적으로 발생하는 예외도 있고 그것을 개발자가 try/catch로 잡는 경우도 있는데 그 때마다 저렇게 실행이 멈추는 것이 좋지는 않기 때문에 기본값이 그렇게 안되어 있는 것입니다.

보다 자세한 내용은 다음의 글을 참고하시면 됩니다. ^^

First-Chance Exception
; https://www.sysnet.pe.kr/2/0/510




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 12/10/2015]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 136  137  138  139  140  141  142  143  144  145  146  147  148  [149]  150  ...
NoWriterDateCnt.TitleFile(s)
1363정성태10/16/201230379개발 환경 구성: 169. Objective-C의 대안 - Xamarin의 Mono를 이용한 C# iOS 개발 환경 [2]
1362정성태10/16/201230661개발 환경 구성: 168. 우분투 서버 Active Directory 가입하기
1361정성태10/12/201224009.NET Framework: 341. .NET COM+ 를 Managed/Native 클라이언트에서 각각 호출했을 때의 콜 스택 비교 [4]파일 다운로드1
1360정성태10/9/201228446.NET Framework: 340. Windows Server 2012 - .NET Framework 1.x 미지원
1359정성태10/9/201264561Windows: 65. 윈도우 8 - Internet Explorer 10을 32비트 또는 64비트로 통합 [5]
1358정성태9/27/201227812.NET Framework: 339. .NET Profiler 주의 사항 - 하나의 exe 프로세스 내에 다중 .NET 런타임 사용
1357정성태9/27/201224818Windows: 64. Hyper-V - Windows XP의 Live Migration 오류
1356정성태9/26/201230958Windows: 63. 윈도우 서버 2012 - Hyper-V의 새로운 기능 Live Migration [6]
1355정성태9/21/201229118Team Foundation Server: 49. TFS 2012 Express의 필수 보완 작업: 데이터베이스 백업 [1]
1354정성태9/19/201225832.NET Framework: 338. .NET CLR GC 시간 측정하는 방법파일 다운로드1
1353정성태9/17/201227092.NET Framework: 337. Python의 생성기와 코루틴을 C#으로 표현하면. [2]파일 다운로드1
1352정성태9/13/201225037.NET Framework: 336. .NET Profiler가 COM 개체일까?
1351정성태9/13/201229422디버깅 기술: 49. windbg - .NET Framework 스레드 개체의 COM Apartment 유형 확인하는 방법
1350정성태9/12/201230085개발 환경 구성: 167. (실은) 무료가 아니었던 AWS EC2 서비스 [4]
1349정성태9/11/201261959VS.NET IDE: 74. Visual Studio의 '새 파일'을 UTF-8 인코딩으로 지정하는 방법 [4]
1348정성태9/11/201229385오류 유형: 164. Active Directory - Functional Level 승격이 안 되는 문제
1347정성태9/10/201231979Windows: 62. 윈도우 서버 2012 - Hyper-V 서버 마이그레이션 [1]
1346정성태9/10/201232596Windows: 61. 윈도우 서버 2012 - Active Directory 서버 마이그레이션
1345정성태9/10/201236913스크립트: 12. 파이썬 - Win32 DLL 연동 [2]
1344정성태9/10/201229976오류 유형: 163. .NET Framework 4.5 제거 후 Visual Studio 2010 실행 시 Unknown Error
1343정성태9/8/201243824스크립트: 11. 파이썬(Python) 윈도우 개발 환경 [7]
1342정성태9/6/201228025VS.NET IDE: 73. Visual Studio 2012 - XmlCodeGenerator 마이그레이션
1341정성태9/4/201237228Windows: 60. Hyper-V에서 RemoteFX 없이 DirectX 11 제공 [12]
1340정성태9/4/201229489개발 환경 구성: 166. DOS - ping 결과에서 평균 응답 시간값 추출하기 [3]
1339정성태9/4/201231868개발 환경 구성: 165. 새로운 Visual Studio 2012 원격 디버깅 툴 [5]
1338정성태9/4/201233735.NET Framework: 335. C# - (핸들을 이용하여) 모든 열린 파일을 열람 [6]파일 다운로드1
... 136  137  138  139  140  141  142  143  144  145  146  147  148  [149]  150  ...