Вызов удаленного COM+ ServicedComponent из клиента C#

У меня есть обслуживаемый компонент, установленный в серверном приложении COM+. Я хочу создать экземпляр с удаленного клиента. Клиент должен иметь возможность динамически указывать имя сервера. Как мне это сделать?

Я пробовал использовать активатор:

            (XSLTransComponent.XSLTransformer)Activator.GetObject(
                        typeof(XSLTransComponent.XSLTransformer),
                        serverName
                        );

Но я получаю это:

System.Runtime.Remoting.RemotingException: не удается создать приемник канала для подключения к URL-адресу «сервер». Соответствующий канал, вероятно, не зарегистрирован. в System.Runtime.Remoting.RemotingServices.Unmarshal (тип classToProxy, URL-адрес строки, данные объекта)

Нужно ли регистрировать канал? Если да, то как?

Другая идея — использовать Marshall.BindToMoniker, но как указать моникер для удаленного объекта, размещенного в COM+ на сервере x?


person Carlos A. Ibarra    schedule 27.01.2009    source источник


Ответы (1)


Эврика! Это работает:

string serverName = serverTextBox.Text;
Type remote = Type.GetTypeFromProgID("XSLTransComponent.XSLTransformer", serverName);
return (XSLTransComponent.XSLTransformer)Activator.CreateInstance(remote);

Благодаря за этот вопрос< /а>

person Carlos A. Ibarra    schedule 27.01.2009