Removedores de canal remotos e ausentes

Eu corri para uma exceção remota:

"Este proxy remoto não tem nenhum coletor de canal, o que significa que o servidor não tem nenhum canal de servidor registrado que esteja escutando, ou este aplicativo não tem nenhum canal de cliente adequado para conversar com o servidor."

A causa é melhor explicada poresta entrada de blog Eu encontrei:

O segundo caso é mais obscuro. Isso ocorre quando o cliente faz uma chamada para o servidor, o servidor retorna uma referência de objeto e o cliente faz uma chamada no objeto referenciado no servidor. Se o objeto referenciado estiver em um AppDomain secundário no servidor, a exceção acima poderá ser lançada. Se o problema ocorrer, é porque o registro do canal se aplica apenas ao AppDomain no qual RegisterChannel é chamado e nenhum canal foi registrado no AppDomain secundário. A referência de objeto retornada ao cliente aponta para o objeto no AppDomain secundário, não para seu proxy no AppDomain primário e, portanto, não há canal entre o cliente e o AppDomain secundário através do qual a chamada pode passar. Solução: registre um canal no AppDomain secundário no qual o objeto referenciado existe.

Isso se encaixa no meu cenário, pois tenho um serviço que carrega plugins em appdomains separados. Instâncias de objeto (implementações de uma interface definida em um assembly referenciado por todos os assemblies) são criadas nos appdomains secundários e referenciados pelo serviço (cross-appdomain, para que o serviço tenha referências de proxy). O serviço, em seguida, retorna essas referências de proxy para um aplicativo. Existem canais registrados entre o aplicativo e o serviço, mas nada entre o plug-in e o aplicativo.

Eu pensei que um proxy seria suficiente para cruzar os limites do appdomain. Eu realmente tenho que criar canais entre os plugins e o aplicativo? Isso não parece certo, então devo estar perdendo alguma coisa.

questionAnswers(3)

yourAnswerToTheQuestion