51

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'partition:{41e90f3e-56c1-4633-81c3-6e8bac8bdd70} / new:MyObject'に接続するためのチャネルシンクを作成できません。適切なチャネルが登録されていない可能性があります。

そのような活性化をどのように達成できるか知っている人はいますか?

4

1 に答える 1

1
  1. Com が公開され、表示されていることを確認します。これを行うには、次のタグを 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"
    
于 2013-02-19T13:12:22.930 に答える