오류 : EventType clr20r3 and Solution




 .NET 응용프로그램 배포를 위한 작업을 하다 직면한 문제이다. 분명 프로젝트를 컴파일하고 실행 시켰을때는 아무 문제가 없었는데 배포 후 실행하면 다음과 같은 오류 메시지가 실행 되었다.


<그림 1>


<그림 2>

 
이런 망할... 왜 오류가 발생했는지 직접적으로 말해 달란 말이다!!! ㅠㅠ

자료를 찾아본 결과 .NET Framework 2.0 에서 처리되지 않은 예외가 발생했을 때 기본 정책으로 응용프로그램을 종료시켜 버리기 때문이라고 한다. .NET Framewor 1.0/1.1 에서는 처리되지 않은 예외가 발생하면 무시한다. 

 그럼 어떤 모듈에서 어떤 메소드, 어떤 예외가 처리되지 않은 것일까?? <그림 2>를 보면 확인할 수 있다. P4 항목이 모듈 이름이며, P2가 메소드 번호, P8은 오프셋, P9는 처리되지 않은 예외 이름이다. 이 정보를 토대로 해결하려 했으나.. 생각보다 간단하지 않았다..

다음 링크를 참조

<그림 2>를 자세히 보다 보니.. P9 즉, 처리되지 않은 예외 정보가 System.Componentmodel.License 였다. 이 예외는 몰까..
결국 알고보니 배포했던 응용프로그램이 외부 Component 를 사용함으로써 발생한 예외문제였다. 
Component 배포 시 *.OCX 파일을 함께 배포하며 자동 등록하게 설정한다. 일반적인 경우인지는 모르겠으나 내가 사용한 *.OCX 파일들의 Component들은  *.lic 파일이 있어야 런타임에 정상적으로 실행되었다. Component 들이 런타임에 *.lic 파일을 참조하고, 만약 없다면 Component 내부에서 예외를 발생시키는 것 같다.

또 배포에 있어 이 상황 말고 다른 상황을 맞이한다면 참조한 링크들 처럼 분석해야 될지도 모르지만.. 위와 같은 경우에서도 발생한다는 것을 알아뒀으면 한다. 이게 경험이지 모.


■ 참조


Posted by six605
,