Microsoft MVP성태의 닷넷 이야기
DCOM COM+ 등록 관련 문의드립니다. [링크 복사], [링크+제목 복사],
조회: 9090
글쓴 사람
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

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

... 46  47  48  49  50  51  52  53  54  55  56  57  58  [59]  60  ...
NoWriterDateCnt.TitleFile(s)
1151황기동6/5/201311624무선 패킷 전송관련 질문 [1]
1147이진권6/2/201311670c# 윈폼 facebook과 연동2 [1]
1144황은영5/29/201316149원격지 서버에서 COM+ 호출이 되지 않습니다. [7]
1143김선희5/28/201317025윈도우 8, 익스플로러 10, 64bit->32bit [1]
1142백지훈5/15/201311444음성인식 TTS 관련해서 질문드립니다 ㅜㅜ [2]파일 다운로드1
1141나그네5/10/201311543안녕하세요..전자세금 관련하여.. 보다보다 여기까지 왔습니다. [4]
1140이성환5/8/201311754제네릭과 배열 관련 기초 질문입니다. [11]
1139양영석5/3/201310316페이스북 로그인 관련하여.... [1]
1137김민현4/30/201310351Binary 구조체에 대한 Linq query 관련 질문입니다. [3]파일 다운로드1
1136박상영4/25/201311188ksc5601에서 지원하지않는 확장문자 찾는방법 [3]
1135sequ...4/16/201326786c# dll c++ 에서 사용하기 (event 사용) [17]
1134이성환4/12/201311004volatile 키워드 관련 질문입니다. [3]파일 다운로드1
1133서광석4/8/201314185vb.net 2010에서 배포시 문제점 확인 방법에 대한 질문드립니다 [1]
1131헤딩3/28/201316472IIS 처리 성능을 높이고 싶으면 풀의 proecss 수를 계속 늘리면 될까요? [1]
1130박재율3/27/201310790WCF 서비스가 종종 죽는데 도움좀 부탁드립니다 ㅠ [1]
1129이상민3/21/201315155안녕하세요...IE Embedded Smart Client가 Windows8에서 정상동작을 하지 않습니다. [8]
1125박홍균3/19/20139333안녕하십니까. visual studio 에서 TFS 접속 관련으로 궁금한 점 여쭤봅니다.
1124궁금이3/18/201312362IIS 서버 이중화 구성시 데이터 베이스 트랜잭션 관리에 관해서... [1]
1127궁금이3/19/20139769    답변글 [답변]: IIS 서버 이중화 구성시 데이터 베이스 트랜잭션 관리에 관해서...(정성태님 봐주세요)
1122김시현3/11/201311179 Xamarin 에 관련하여 질문드립니다. [4]
1121롬메달2/14/201311301Assembly.Load로 얻은 객체안에서 제3의 어셈블리를 참조할때의 문제입니다. [8]
1120Lyn2/12/201310798안녕하세요. 블로그에 기술관련글을 꾸준히 포스팅 하실 수 있는 원동력이 궁금합니다. [1]
1119박진영2/4/201334292닷넷 DLL 실행 에러 (보호된 메모리를 읽거나 쓰려고 했습니다..) [2]파일 다운로드1
1118C#조으다1/29/201312323공유기 관리 페이지에 접근시 윈도우 인증창이 뜹니다. [4]
1117최윤호1/28/201310128답변주셔서 감사합니다 질문의 요지는 그게 아니고 [1]파일 다운로드1
1116C#조으다1/27/201317336비프음을 컴퓨터 내장 스피커로 출력하려면.. [2]
... 46  47  48  49  50  51  52  53  54  55  56  57  58  [59]  60  ...