Microsoft MVP성태의 닷넷 이야기
.NET Framework: 6. Win2000에서의 .NET COM+ 자동 등록 오류 발생 해결 [링크 복사], [링크+제목 복사],
조회: 23452
글쓴 사람
정성태 (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

비밀번호

댓글 작성자
 




... 106  107  108  109  110  111  112  113  114  115  [116]  117  118  119  120  ...
NoWriterDateCnt.TitleFile(s)
11058정성태10/8/201623990개발 환경 구성: 303. Windows 10 Bash Shell - 한글 환경을 영문으로 바꾸고 싶다면?
11057정성태10/8/201618508오류 유형: 358. Windows 10 bash shell - sudo: unable to resolve host ...
11056정성태10/8/201622315개발 환경 구성: 302. Windows 10 bash shell 시작 시 [...] packages can be updated.
11055정성태10/8/201623315.NET Framework: 608. double 값을 구할 때는 반드시 피연산자를 double로 형변환! [6]
11054정성태10/5/201627326개발 환경 구성: 301. "Let's Encrypt" SSL 인증서를 Azure Cloud Services(classic)에 업데이트하는 방법
11053정성태10/5/201621980.NET Framework: 607. C# try/catch/finally의 IL 코드 표현
11052정성태9/27/201635914개발 환경 구성: 300. C# DLL에서 Win32 C/C++처럼 dllexport 함수를 제공하는 방법 [7]파일 다운로드1
11051정성태9/25/201623069개발 환경 구성: 299. docker - c:\programdata\docker\windowsfilter 폴더 정리하는 방법파일 다운로드1
11050정성태9/24/201627864VC++: 101. 반올림하지 않고 double 변수 값 출력하는 방법 [3]
11049정성태9/24/201622303오류 유형: 357. 윈도우 백업 시 오류 - 0x81000037
11048정성태9/24/201623366VC++: 100. 전역 변수 유형별 실행 파일 크기 차이점
11047정성태9/21/201627268기타: 61. algospot.com - 양자화(Quantization) 문제 [2]파일 다운로드1
11046정성태9/15/201628963개발 환경 구성: 298. Windows 10 - bash 실행 시 시작 디렉터리 자동 변경
11045정성태9/15/201621606Windows: 119. Windows 10 - bash 명령어 창을 실행했는데 바로 닫히는 경우
11044정성태9/15/201621845VS.NET IDE: 112. Visual Studio 확장 - 편집 화면 내에서 링크를 누르면 외부 웹 브라우저에서 열기
11043정성태9/15/201622557.NET Framework: 606. .NET 스레드 콜 스택 덤프 (7) - ClrMD(Microsoft.Diagnostics.Runtime)를 이용한 방법 [1]파일 다운로드1
11042정성태9/14/201620635오류 유형: 356. Unknown custom metadata item kind: 6
11041정성태9/10/201620739.NET Framework: 605. CLR4 보안 - yield 구문 내에서 SecurityCritical 메서드 사용 불가 - 2번째 이야기
11040정성태9/10/201628215.NET Framework: 604. C# Windows Forms - Drag & Drop 예제 코드 [2]파일 다운로드1
11039정성태9/9/201624042오류 유형: 355. Visual Studio 빌드 오류 - error CS0122: '__ComObject' is inaccessible due to its protection level
11038정성태9/9/201626678VC++: 99. 서로 다른 프로세스에서 WM_DROPFILES 메시지를 전송하는 방법파일 다운로드1
11037정성태9/8/201629840.NET Framework: 603. socket - shutdown 호출이 필요한 사례파일 다운로드1
11036정성태8/29/201625677개발 환경 구성: 297. 소스 코드가 없는 닷넷 어셈블리를 디버깅할 때 지역 변숫값을 확인하는 방법
11035정성태8/29/201621572오류 유형: 354. .NET Reflector - PDB 생성 화면에서 "Clear Store"를 하면 "Index and length must refer to a location within the string" 예외 발생
11034정성태8/25/201625556개발 환경 구성: 296. .NET Core 프로젝트를 NuGet Gallery에 배포하는 방법 [2]
11033정성태8/24/201623484오류 유형: 353. coreclr 빌드 시 error C3249: illegal statement or sub-expression for 'constexpr' function
... 106  107  108  109  110  111  112  113  114  115  [116]  117  118  119  120  ...