Microsoft MVP성태의 닷넷 이야기
DCOM COM+ 등록 관련 문의드립니다. [링크 복사], [링크+제목 복사],
조회: 16149
글쓴 사람
C#초보 (cyclon79 at naver.com)
홈페이지
첨부 파일
 
(연관된 글이 1개 있습니다.)

안녕하세요. 오래된 글에 질문을 드려도 될런지 모르곘네요.
regsvcs를 통해서 Com+로 등록을 하려고 하면 오류가 발생하고 있습니다.

다음 설치 오류가 발생했습니다.
1: 'd:\........\project.dll' 어셈블리를 로드하지 못했습니다.
2: 파일이나 어셈블리 '............project.dll' 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다. 프로그램을 잘못된 형식으로 로드하려고 했습니다.

라고 나오고 있습니다.
서버에 COM+로 등록을 하고 사용을 하려고 합니다.
위에 설명하신 것처럼 ActivationOption.Server 로 변경도 했습니다.
다만 제가 적용하려고 하는 프로젝트가 C#과 C++ 둘다 사용하고 있으며 CLI로 연결되어 있습니다.
즉, C#에서 만든 DLL이 C++에서 만든 DLL을 참조하고 있기도 합니다.

원래는 이런 용도로 개발된 프로그램이 아닌데 요청으로 인해 DCOM등록을 해서 사용해야 하는 상황이 생겨서 알아보다가 여기까지 들어오게 되었네요.
단순하게 어셈블리서명만 추가해서 하면 될줄 알았는데 쉽지가 않네요.

어디를 놓쳤는지 뭘 더 해줘야 하는지 어떻게 해야 할지 막막하여 지푸라기라도 잡는 심정으로 문의드려봅니다.

감사합니다.


[연관 글]






[최초 등록일: ]
[최종 수정일: 11/13/2019]


비밀번호

댓글 작성자
 



2019-11-13 11시10분
그렇다면 아마도 C++/CLI DLL을 찾거나 로드하지 못해서 발생한 것 같습니다. 우선, x86/x64 문제가 아닌지 확인을 해보세요. x64 regsvcs로 등록을 시도했다면 C#은 AnyCPU로 되어 있는 경우 상관없지만 C++/CLI가 x86으로 되어 있다면 정상적으로 로드가 되지 않을 것입니다.

그래도 해결하지 못하신다면, 해당 현상이 재현되는 최소한의 C#, C++/CLI 프로젝트를 올려주시면 저도 regsvcs로 등록을 시도해 보겠습니다.
정성태
2019-11-13 12시55분
[ C#초보] 빌드는 Win32로 하고 있습니다. 재현되는 최소한의 프로젝트를 올려드리고 싶은데 큰 프로젝트라서 나누기가 쉽지가 않네요..ㅠㅜ
우선 말씀하신대로 x64 regsvcs랑 x32 regsvcs 둘다 다시 한번 해보겠습니다. anycpu로 되어있는건 없는듯 합니다.
[guest]
2019-11-13 01시29분
그렇다면 fuslogvw.exe 설정을 해서 어떤 식으로 DLL이 찾아지는지 한번 조사해 보세요.

Fuslogvw.exe (Assembly Binding Log Viewer)
; https://docs.microsoft.com/ko-kr/dotnet/framework/tools/fuslogvw-exe-assembly-binding-log-viewer

운이 좋다면 저 로그에 원인이 나올 것입니다.
정성태
2019-11-13 01시49분
[ C#초보] 이야~ 정말 감사합니다.
일단 x64용으로 regsvcs를 사용하고 있었더군요.
x32용으로 하니까 뭔가 되는듯 합니다.
그런데 또다시 문제가 발생하네요.
한번에 되면 좋으련만...ㅠㅜ 스무고개 금지라 하셨는데..ㅠㅜ 죄송합니다.

경고: 어셈블리에서 ServicedComponent 파생 클래스를 찾을 수 없습니다.
RegAsm을 사용하여 ComVisible 형식을 등록하십시오.

라고 나오네요.

RegAsm Project.dll 을 해 보고 난 다음에 했는데도 동일하게 나오고 있습니다.

혹시 다시 도움이 될 만한 견해가 있으신가요?

아. 그리고 Fuslogvw.exe는 정말 신기하더군요. 도움이 많이 될듯 합니다.
[guest]
2019-11-13 04시05분
그 메시지는 말 그대로, 만드신 C# DLL에서 ServicedComponent를 상속한 클래스가 없다는 건데요. 있나요? 아래의 글에 작성한 예제 코드대로 class를 만들었는지 확인해 보세요.

regsvcs.exe 로 어셈블리 등록 시 시스템 변경 사항
; http://www.sysnet.pe.kr/2/0/1289
정성태
2019-11-14 11시05분
[C#초보] 덕분에 한단계 한단계 길이 보이고 있는듯 합니다. ㅠㅜ 혼자 너무 삽질을 했네요.
말씀하셨듯이, ServicedComponent를 상속받도록 해 주었습니다.
그랬더니 또 문제가...

어셈블리에 잘못된 ServicedComponent 파생 클래스가 있습니다.
클래스는 public이고 abstract가 아니어야 하며, public 기본 생성자를 사용하고 다른 모든 ComVisibility 요구 사항에 맞아야 합니다.

라고 나옵니다.
찾아보니 ComVisibility를 true로 해 줘야 한다고 해서 assamblyinfo.cs 쪽에 [assembly: ComVisible(true)]로 변경을 해 주었습니다.
그런데도 위와같은 오류 메시지가 나오고 있네요. ㅠㅜ

계속적인 질문에 죄송스럽습니다만 의견 있으시면 조언 부탁드립니다.
[guest]
2019-11-14 03시30분
일단 쉽게 가는 것이 좋을 것 같은데요. 아래의 글에 포함한 예제 코드로 실습을 해보세요.

regsvcs.exe로 어셈블리 등록 시 시스템 변경 사항
; http://www.sysnet.pe.kr/2/0/1289

저 예제가 잘 등록이 되었다면 이후 자신의 코드와 비교해 뭐가 틀렸는지 보면 되지 않을까요?
정성태

... 76  [77]  78  79  80  81  82  83  84  85  86  87  88  89  90  ...
NoWriterDateCnt.TitleFile(s)
594ygso...3/13/200714278ClickOnce를 이용하여 SmartClient를 배포할경우.. [2]
589김희택3/2/200713440리소스 추가 방법에 대한 아티클을 보던중에 질문요... [1]파일 다운로드1
588이성진2/24/200715698웹 -> 스마트클라이언트 -> 웹서비스 의 세션 공유 방법 ? [1]
583김영민2/22/200713887Vista에서 "관리자 권한으로 실행"을 통해 실행한 프로세스의 동작
584정성태2/22/200715374    답변글 [답변]: Vista에서 "관리자 권한으로 실행"을 통해 실행한 프로세스의 동작
582한귀순2/22/200713941sqlhelper 의 updatedataset
585정성태2/23/200713166    답변글 [답변]: sqlhelper 의 updatedataset [1]
579futu...2/16/200714666VS2005의 스마트 클라이언트에서 웹브라우저 예제 질문입니다. [1]
578정해봉2/16/200713892IE Embeded Assambly 방식에서 CAS 설정 방법 [1]
575박성민2/12/200714687COM에 데이터 보내기 질문입니다. [1]
571엔틱스2/7/200715397그냥... 질문은 아닙니다만... [2]
5682/6/200712623이런 오류 화면을 어떻게 찾아봐야 - 알아봐야 - 하는지요?파일 다운로드1
569정성태2/6/200714148    답변글 [답변]: 이런 오류 화면을 어떻게 찾아봐야 - 알아봐야 - 하는지요? [1]
570정성태2/6/200714023        답변글 [답변]: [답변]: 이런 오류 화면을 어떻게 찾아봐야 - 알아봐야 - 하는지요?
5732/8/200713020            답변글 [답변]: [답변]: [답변]: 이런 오류 화면을 어떻게 찾아봐야 - 알아봐야 - 하는지요? [1]파일 다운로드1
565한귀순2/5/200713582typed dataset 의 유용성
566정성태2/6/200715429    답변글 [답변]: typed dataset의 유용성 [1]
564정민영2/5/200713849혹시 이런 경우 보신적 있으신가 궁금합니다..^^; [2]
563창민이2/2/200713974Visual C++ COM Objects Returning Recordsets 사용에 대해.. [3]
562현석1/29/200713996C# 스마트응용장치에서 아이콘 움직이게하는거 질문요 ^^ [1]파일 다운로드1
559초보1/27/200715288급 질문 입니다. visual studio 자동 종료에 대한 질문입니다. [2]
558즈믄1/26/200714981.Net Framework v2.0에서 Winform의 Panel에 Excel파일 보여주기 [2]
556정재우1/26/200715063vista에서 smartclient의 System.Security.PermissionsRegistryPermission 에러 [1]
555dev....1/25/2007164532005 WebBrowser내에서 팝업 처리 문제 관련 질문입니다.
561정성태1/29/200719332    답변글 [답변]: 2005 WebBrowser 내에서 팝업 처리 문제 관련 질문입니다.
554sky1/23/200715125<급질문> interop 를 사용함에 있어 [2]
... 76  [77]  78  79  80  81  82  83  84  85  86  87  88  89  90  ...