Microsoft MVP성태의 닷넷 이야기
.NET Framework: 6. Win2000에서의 .NET COM+ 자동 등록 오류 발생 해결 [링크 복사], [링크+제목 복사],
조회: 22047
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

현재의 제 노트북에 설치된 환경이 워낙 복잡하고 잘 설치되어 있다보니, 쉽게 XP로의 이전을 못하고 있습니다. 더군다나, 프리랜서로 작업을 하다보니, 고객들의 요청이 모두가 급하다 보니, 쉽게 시간을 낼 수 없어서 미루고 있습니다.

그래서 .NET에 대한 공부를 Win2000 환경에서 하고 있는데... 하다보니 문제가 좀 발생하더군요.

일례로, .NET으로 만든 Assembly를 COM+로 등록한다고 표시를 해두면, 실행 시에 자동으로 등록되어지는 기능이 있는데, Win2000에서는 그 훌륭한 "자동 등록" 기능이 다소 불안정하게 동작합니다.
.NET의 버그라고 생각하고 할 수 없이, regsvcs.exe로 수동 등록을 해주면서 테스트를 했는데, "김현승의 닷넷이야기" 클럽에 글을 올렸더니, "안재우" 님이 아래와 같은 답변을 해주시더군요.

실제로, 그 이후로 "자동 등록"에 관해서는 어떠한 문제도 발생하지 않았습니다. 아래의 답변의 요점은,,, Win2000 SP3과 .NET Framework SP2를 설치할 것이며, Assembly Type에 GUID를 부여하라는 것입니다.

실제 질문/답변의 스레드는 다음의 URL에서 확인하실 수 있습니다.

http://www.devpia.com/Club/ClubSub/ClubBBS/ClubBBSView.aspx?c_no=188&ref=188&page=1&depth=0&step=0&clubname=C_ClubBoard&code=2307&Cate=bbs&SearchDistinct=&SearchText=

위의 웹페이지를 정상적으로 보기 위해서는 Devpia에 회원 가입이 되어야 하며, "김현승의 닷넷이야기" 클럽에 가입해야 합니다.

////// 아래는 안재우 (lancers@devpia.com )님의 답변입니다. /////////
결론적으로 말씀드리면..
네.. 자동 등록은 100% 제대로 동작한다고 보긴 어렵습니다.
제 경우는 거의 그런 상황을 본 적은 없습니다만...
몇몇 사람들이 Self-Registration 시 문제가 생기는 경우가 있다는 얘기를 하더군요.
운영체제하고도 어느 정도 관련이 있는것 같던데..
2000에서 그런 경우를 더욱 많이 본 것 같습니다. (아시다시피 2000의 COM+는 구 버전에다 버그도 좀 있죠)
저는 XP를 사용하는데 그 이후는 하나도 본 적이 없는 것 같습니다만...
이건 공식적인 정보가 아니라 경험 상의 얘기이니 믿거나 말거나 입니다. :-)

역시 가장 확실하고 안정적인 방법은..
regsvcs를 사용해서 수동으로 등록하는 것이랍니다. ^^

그리고 궁금한 것 중 하나는
두 분 다 ActivationModel을 Server로 하셨나요, Library로 하셨나요?
저는 대부분의 경우 Library로 사용하는데 이러한 경우를 본 적이 거의 없습니다.
Server의 경우는 문제가 좀 많은 듯 하더군요.
예전에 자료실에도 올렸지만, .NET에서는 Server 활성화를 사용할 이유가 거의 전무합니다.

또 하나.. 개발을 계속하다보면.. COM+ Application 내에 동일한 이름의 컴포넌트가 계속 쌓이게 됩니다.
기본적으로 매번 빌드 시마다 VS.NET이 컴포넌트의 버전과 GUID를 랜덤하게 만들어 내기 때문인데요..
이게 문제가 되는 경우도 있는것 같더군요.
GUID를 고정시켜주면 그런 문제가 거의 없어질 것으로 생각됩니다. ^^

앗.. 그리고 ASP.NET이 JIT 컴파일하면서 블루스크린이 뜨는 문제..
저도 몇번 봤답니다. ^^
그런데 노트북을 바꾸고 나서는 한번도 본 적이 없는데, 이게 어찌된 일일까요..? ^^;;
윈 2000을 사용하시는 분들은 SP3를 반드시 까시고..
.NET Framework도 SP2로 패치하여 사용해 보시기 바랍니다.

다른 얘기입니다만..
윈폼 애플리케이션을 만들어보다가 희한한(?) 현상을 하나 목격했습니다.
약간 무거운(?) 애플리케이션이긴 한데..
정확한 원인이 무엇인지는 모르겠지만..
어느 날 터미널로 들어가보니..
폼 전체에 빨간 X 표시가 되어 있는체, 원인을 전혀 알 수 없는 오류가 발생해 있더군요.
운영체제가 아직 베타인 Windows.NET이어서 그랬는지.. 에궁.. -.-








[최초 등록일: ]
[최종 수정일: 7/9/2021]

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

비밀번호

댓글 작성자
 




... 31  32  33  34  35  [36]  37  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
13041정성태4/28/202214586개발 환경 구성: 642. Informix 데이터베이스 docker 환경 구성
13040정성태4/27/202214212VC++: 156. 비주얼 스튜디오 - Linux C/C++ 프로젝트에서 openssl 링크하는 방법
13039정성태4/27/202217328.NET Framework: 1999. C# - Playwright를 이용한 간단한 브라우저 제어 실습
13038정성태4/26/202213501오류 유형: 806. twine 실행 시 ConfigParser.ParsingError: File contains parsing errors: /root/.pypirc
13037정성태4/25/202214296.NET Framework: 1998. Azure Functions를 사용한 간단한 실습
13036정성태4/24/202215238.NET Framework: 1997. C# - nano 시간을 가져오는 방법 [2]
13035정성태4/22/202216489Windows: 204. Windows 10부터 바뀐 QueryPerformanceFrequency, QueryPerformanceCounter
13034정성태4/21/202214049.NET Framework: 1996. C# XingAPI - 주식 종목에 따른 PBR, PER, ROE, ROA 구하는 방법(t3320, t8430 예제)파일 다운로드1
13033정성태4/18/202215185.NET Framework: 1195. C# - Thread.Yield와 Thread.Sleep(0)의 차이점(?)
13032정성태4/17/202215366오류 유형: 805. Github의 50MB 파일 크기 제한 - warning: GH001: Large files detected. You may want to try Git Large File Storage
13031정성태4/15/202215066.NET Framework: 1194. C# - IdealProcessor와 ProcessorAffinity의 차이점
13030정성태4/15/202213583오류 유형: 804. 정규 표현식 오류 - Quantifier {x,y} following nothing.
13029정성태4/14/202214996Windows: 203. iisreset 후에도 이전에 설정한 전역 환경 변수가 w3wp.exe에 적용되는 문제
13028정성태4/13/202215129.NET Framework: 1193. (appsettings.json처럼) web.config의 Debug/Release에 따른 설정 적용
13027정성태4/12/202214996.NET Framework: 1192. C# - 환경 변수의 변화를 알리는 WM_SETTINGCHANGE Win32 메시지 사용법파일 다운로드1
13026정성태4/11/202216351.NET Framework: 1191. C 언어로 작성된 FFmpeg Examples의 C# 포팅 전체 소스 코드 [3]
13025정성태4/11/202215615.NET Framework: 1190. C# - ffmpeg(FFmpeg.AutoGen)를 이용한 vaapi_encode.c, vaapi_transcode.c 예제 포팅
13024정성태4/7/202213859.NET Framework: 1189. C# - 런타임 환경에 따라 달라진 AppDomain.GetCurrentThreadId 메서드
13023정성태4/6/202214457.NET Framework: 1188. C# - ffmpeg(FFmpeg.AutoGen)를 이용한 transcoding.c 예제 포팅 [3]
13022정성태3/31/202214015Windows: 202. 윈도우 11 업그레이드 - "PC Health Check"를 통과했지만 여전히 업그레이드가 안 되는 경우 해결책
13021정성태3/31/202215840Windows: 201. Windows - INF 파일을 이용한 장치 제거 방법
13020정성태3/30/202214083.NET Framework: 1187. RDP 접속 시 WPF UserControl의 Unloaded 이벤트 발생파일 다운로드1
13019정성태3/30/202214531.NET Framework: 1186. Win32 Message를 Code로부터 메시지 이름 자체를 텍스트로 구하고 싶다면?파일 다운로드1
13018정성태3/29/202215281.NET Framework: 1185. C# - Unsafe.AsPointer가 반환한 포인터는 pinning 상태일까요? [5]
13017정성태3/28/202214250.NET Framework: 1184. C# - GC Heap에 위치한 참조 개체의 주소를 알아내는 방법 - 두 번째 이야기 [3]
13016정성태3/27/202215942.NET Framework: 1183. C# 11에 추가된 ref 필드의 (우회) 구현 방법파일 다운로드1
... 31  32  33  34  35  [36]  37  38  39  40  41  42  43  44  45  ...