여러 가지 이유로 (안정성, 배포) 별도의 AppDomain에서 실행해야하는 .NET 코드가 있습니다. MBR에서 파생 된 프록시 객체를 생성하여 실제 객체에 대한 호출을 위임하므로 현재 AppDomain에로드되지 않습니다. 나는 일반적인 CreateInstanceAndUnwrap을 통해 프록시를 만든다. 나는 .NET 클라이언트에서 사용할 때COM interop에서 AppDomain을 사용하지 못했습니다.
this.eDirectCommunication = (EDirectCommunicationProxy) this.appDomain.CreateInstanceAndUnwrap(x, y);
이 캐스트가 실패 COM 클라이언트에서로드 그러나 때, 잘 작동합니다. 투명한 프록시에서 전송하지 못했습니다. 필요한 유형이 원하는 AppDomain에 만들어 졌는지 확인하고 Unwrap이 성공하면 캐스트가 실패합니다. 흥미롭게도 두 AppDomain 모두 어셈블리 바인딩 실패를 가리키는 동일한 기본 디렉터리가있을 때 작동합니다. 그러나 Fusion 로그 뷰어에는 어떤 문제도 언급되어 있지 않습니다.
here과 here 두 가지 유사한 질문이 있지만 답변을 제공하지 않습니다. 어떤 아이디어가 잘못되었거나 어떻게 디버깅 할 수 있습니까?