I've a piece of .NET code that for various reasons (reliability, deployment) must run in a separate AppDomain. I've created a proxy object deriving from MBR that delegates the calls to the real stuff so it wont load in the current AppDomain. I create the proxy via the usual CreateInstanceAndUnwrap.
this.eDirectCommunication = (EDirectCommunicationProxy) this.appDomain.CreateInstanceAndUnwrap(x, y);
This works great when I use it from a .NET client, however when loaded from a COM client the cast fails. I get a failure to cast from a transparent proxy. I validated that the required type is created on the desired AppDomain and the Unwrap succeeds, just the cast fails. Interestingly, it does work when both AppDomain have the same base directory, which points to assembly binding failures. But the Fusion log viewer doesn't mention any issues.
There are two somewhat similar questions here and here, but they provide no answer. Any ideas what is going wrong, or how can I debug it further?