Microsoft MVP성태의 닷넷 이야기
DCOM COM+ 등록 관련 문의드립니다. [링크 복사], [링크+제목 복사]
조회: 395
글쓴 사람
홈페이지
첨부 파일
 
안녕하세요. 오래된 글에 질문을 드려도 될런지 모르곘네요.
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로 되어있는건 없는듯 합니다.
[손님]
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는 정말 신기하더군요. 도움이 많이 될듯 합니다.
[손님]
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)]로 변경을 해 주었습니다.
그런데도 위와같은 오류 메시지가 나오고 있네요. ㅠㅜ

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

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

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

1  2  3  4  5  6  7  [8]  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
5080WPF초보10/30/20181410[WPF] IsManipulationEnabled속성 설정시 Click이벤트 문의 [1]
5079jhp10/30/20181758이 소스에 API후킹 소스를 추가하고 싶은데 어떻게 해야될지 모르겠어요. [4]
5078꾸엉10/29/20181269C# 7.1 185~187p 질문입니다. [2]
5077윤현수10/29/20182226setup파일 설치 이후 실행이 안되는 현상 [11]
5074진우10/28/20181295C# 생성과 동시에 초기화 하는 코드 문의 [2]
5073돌고래10/27/20181436c# 공부 방향 질문 드립니다. [3]
5072엔벌잉10/24/20181677C# textbox, button질문입니다! [4]파일 다운로드1
5071엔벌잉10/23/20181655C#윈도우폼 질문입니다!! [2]
5070진우10/17/20181317Visual Studio 서비스팩과 업데이트 차이 문의 [2]
5069감자10/12/20181463빌드 구성을 재설정하는 방법이 있을까요? [1]파일 다운로드1
5068누오10/10/20181304ASP Core 2.0 에서 dll안에 있는 뷰 읽어들이는 방법? [1]
5067김정민10/5/20181365다른 윈도우가 깨지는 현상을 막을 수 있을까요 [3]
5066로니브10/4/20181517ASP.NET MVC에서 View 파일 숨기는법? 보안처리 하는법? 관련 질문.. [1]
5065키모10/1/20181278문자 질문입니다. [3]
5064로니브10/1/20181526클래스 라이브러리에서 .cshtml파일을 추가하는 방법은 없나요? [3]
5063진우9/28/20181363ADO.net 과 Entity Framework 차이 문의 [2]
5062테스트9/27/20181257C# import file 의 구조체 배열 선언 및 호출에 대해 문의. [3]
5061안녕하세요9/13/20181518c# 프로그래밍 관련 문의 [1]
5060임민재9/8/20181412c# install 파일 생성 시 문제가 발생하였습니다 [1]파일 다운로드1
50599/7/20181284Winform TextBox 포커스 유지하는 방법 질문 [파일첨부] [1]파일 다운로드1
50589/5/20181980Winform TextBox 포커스 유지하는 방법 질문 [3]
5056박종윤8/30/20182122c# dll을 C++에서 사용 시 event 호출 [4]파일 다운로드1
5055초보자8/29/20181661asp.net 에서 다른 서버의 iis를 stop하는 batch file을 실행시키는데 동작하지 않습니다. [5]
5054사도신8/29/20181389[wpf] textbox insert overite 모드시에 [4]파일 다운로드1
5053엿장수8/26/20181358directshow filter 에서의 IMediaSample 의 시간에대한질문입니다 [1]
5052오명현8/26/20181531Tcp소켓 실습 Exeption 도와주세요! [4]파일 다운로드1
1  2  3  4  5  6  7  [8]  9  10  11  12  13  14  15  ...