본문 바로가기

정보공유

visual studio Just-In-Time Debugger 처리되지 않은 예외 해결 방법

반응형

 

어느순간 웹사이트 개발 테스트를 하다가 클라이언트 웹브라우져에서 로딩이 엄청 오래 걸리고 화면이 멈춰 있는 듯한 현상이 나타났다.

네트워크가 단절되었나, 웹서버가 멈춘건가 하면 여기저기 찾아보던 중. 웹서버에서 창이 하나 떠 있음을 발견 했다.

 

Visual Studio Just-In-Time Debugger 라는 창이다.

웹소스 상에서 오류가 있어, 웹서버 단에서 자체 Debugger를 불러온 듯하다.

 

 

여기서 아니오를 선택하면, 클라이언트의 웹브라우져 화면에는 오류 창이 표시가 된다.

웹서버 단에서 아니오든지 예를 눌러 다른 디버거를 선택해주지 않으면 클라이언트 화면에서는 계속 무한 로딩이 되는 듯한 빈 화면이 보여진다.

 

 

 

그런데 또 막상 선택한 Debugger를 사용하여 디버깅하시겠습니까? 라는 물음에

현재선택한 디버거를 기본값으로 설정 선택 후 예를 누르면,

라이선스 데이터가 잘못되었습니다. 다시 설치해야합니다. 라는 문구가 나온다.

이도저도 어찌 할 수 있는 방법이 없다

 

 

여기저기 구글링을 해보니, 레지스트리 키를 삭제해주면 해결이 된단다!. 오예~!.

친절하신 설명대로 하나하나 따라해본다.

 

-- OS가 32bit일 경우 --

** HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
** HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windws\.NETFramework\DbgManagerdDebugger

 

레지스트리 Key 를 삭제해주면 되고,

 

 

-- OS가 64bit일 경우 --

** HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
** HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger

 

를 삭제 해주면 된단다.

운영 중인 서버의  OS가 64bit라서 두번째 레지스트리 key를 삭제해 주었다.

 

재부팅 후, 다시 페이지를 열어보니!!!!!

 

증.상.이.동.일.하.다!!!

 

 

아... 좌절을 하며, 다시 구글링을 해보지만, 역시다 다들 레지스트리 Key삭제에 대한 내용 뿐이다.

 

그러다 문득, 클라이언트에서 웹접속으로 에러 발생시, 서버에서 debugger 가 뜨는 것이라면, 디버깅이 서버쪽으로 되어있는게 아닌가 하는 생각이 문득 스쳐지나간다.

 

 

그래서 IIS에서 디버깅을 하는 부분을 찾아 준다. ASP의 경우 IIS항목에서 ASP로 들어가면 서버쪽 디버깅을 설정하는 곳이 있다.

 

 

 

찾아보니 디버깅 속성에 "서버 쪽 디버깅 사용"이라 부분이 있다.  이놈이 초기 설치시 True로 되어있었는지 True로 되어있어,  False로 변경을 해주었다.

 

그리고 나서 "적용" 버튼.

 

다시 클라이언트 브라우져에서 실행해보니 오~ 이제 안뜬다~!.

간단한 옵션하나 변경해주면 될것을 괜히 엄한곳에서 찾고 있었다.

 

뭐 다들 아실 내용일 수도 있겠으나, 저 같이 여기 저기 찾아 헤매시는 분들에게 조금이라도 시간절약을 드리고자 적성해보았다.

 

ASP가아니더라도 서버쪽 디버깅 사용 옵션을 보면 레지스트리 키를 삭제해도 나오는 Just-In-Time Debugger 창을 off시킬 수 있을 것이다.

 

 

 

반응형