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

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

... 16  17  18  19  20  21  [22]  23  24  25  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
5372민성8/24/20207621안녕하세요 WPF 웹브라우저 컨트롤에서 웹브라우저 자체를 엣지로 할 수가 있나요? [2]
5371서현준8/11/20206634Hyper-V 내부 네트워크 환경 중, VM 에서 인터넷 접속 [1]
5370독자8/11/20205685.net createobject 관련 질문입니다.. [4]
5369독자8/10/20206008c# 8.0 프로그래밍 책에 대한 질문 드립니다 [1]
5368guest8/10/20207294시작하세요! C# 8.0 프로그래밍 책에 오타가 있습니다. [1]
5367박순기8/8/20206211디버깅 시 반전되는 부분 글 색상이나 배경색을 변경하는 방법 [3]파일 다운로드1
5366간절함8/7/20206902하나의 솔루션에서, 32비트 프로젝트에서 다른 64비트 프로젝트 참조하는 방법 궁금합니다. [4]
5365영귤8/6/20206151TimeSpan 구할 때 시간대를 바꿔도 같은 값이 나오는 것 같습니다. [1]
5364박순기8/5/20206198visual studio의 menu bar font size 변경방법 문의 [2]파일 다운로드1
5363클락8/1/20206824c# 9.0 출간 준비 중이신가요? [2]
5361하태7/29/20206437안녕하세요! 바이너리데이터 파싱 질문 드리겠습니다!. [2]
5360진우7/28/20207406엑셀에서 발생하는 모든 이벤트를 감지 할수 있는지 궁금합니다. [6]파일 다운로드1
5358홍길동7/22/20206149개체에서 open 속성이나 매서드가 지원 되지 않읍니다.라고 오류창이 뜨는데. [1]
5357손동섭7/22/20206254책 예제코드... [3]
5355neska7/21/20206633안녕하세요 문의 드립니다 [1]
5354민성7/15/20208108안녕하세요 db연결 문자 보안 [2]
5353형성재7/14/20207132Visual Studio Setup Project에서 VC++2010재배포패키지설치 [4]
5352윤식7/10/20207109닷넷코어 빌드 시 runtimeconfig 파일을 없앨 수 있는지.. [4]
5351runr...7/2/20206954C# 에서 C++ dll 병렬 사용 [1]
5350홍성호6/29/20208562C++에서 정의된 구조체(공유메모리)를 C#으로 공유메모리에서 구조체 변환시 에러가 발생 합니다. [1]파일 다운로드1
5349jero...6/24/20206081logon credential provider 관련 문의드립니다. [1]
5348776/19/20205826시작하세요 C# 8.0프로그래밍 책에 대한 질문입니다. [8]
5347민성6/19/20206629안녕하세요 WPF Binding에서요 [1]
5346dimo...6/18/20206679Task.WhenAll() 메소드를 이용한 코드를 좀더 짧게 사용하고 싶은데 다른 표현이 있을까요? [3]
5345질문요6/12/20205788idc vs 집 속도 [2]
5344하태6/2/20206920c++ .ilb에서 c# dll 호출 질문 드리겠습니다 (콜백함수 전달) [4]
... 16  17  18  19  20  21  [22]  23  24  25  26  27  28  29  30  ...