Активация объекта COM + в другом разделе - PullRequest
51 голосов
/ 19 января 2012

Я создал раздел домена COM +, затем сопоставил его с сервером Windows 2008 и импортировал в него приложение COM +.

Я попытался использовать следующий код C # для активации объекта из этого конкретного раздела всервер удаленно:

//partition guid
Guid guidMyPartition = new Guid("41E90F3E-56C1-4633-81C3-6E8BAC8BDD70");
//parition moniker
string uri= "partition:{" + guidMyPartition + "}/new:MyObject";
Type t = Type.GetTypeFromProgID("MyObject", "MyServer");
MyObject obj = (MyObject)Activator.GetObject(t, uri);

Но я получаю следующее исключение:

Невозможно создать приемник канала для подключения к разделу URL: {41e90f3e-56c1-4633-81c3-6e8bac8bdd70} /новый: MyObject.Соответствующий канал, вероятно, не был зарегистрирован.

Кто-нибудь знает, как можно выполнить такую ​​активацию?

1 Ответ

1 голос
/ 19 февраля 2013
  1. Убедитесь, что ваш ком публичный и видимый.Для этого добавьте эти теги в свой класс Com:

    [ClassInterface(ClassInterfaceType.AutoDual)]
    [Guid("41E90F3E-56C1-4633-81C3-6E8BAC8BDD70")]
    [ProgId("..........")]
    [ComVisible(true)] 
    public class MyCom
    {
    
  2. Убедитесь, что ваш COM зарегистрирован.Вы можете сделать это с помощью командной строки:

    C:\WINDOWS\Microsoft.Net\Framework\v4.0.30319\regasm "C:\.......\xxx.dll"
    
...