你似乎使用的Liberary的激活方法,而且是在Debug模式下运行你的应用程序。所以在运行时,Client应用程序会自动找到bin\debug目录下的Com+的DLL进行注册。所以激活了两次。

解决方案 »

  1.   

    To jerryfangsh(碎片) :
    你说的似乎有道理。但我的激活方式是 Server,使用 Object Pooling(不使用结果是一样的)。并且我确信它是在 Dllhost 中运行。而且,我也试过在 Release 版下,直接运行客户端调用 COM+ 组件。结果都是一样的。
    其中一个使用以下的属性:
    [ObjectPooling(MinPoolSize=1, MaxPoolSize=3)]
    [Transaction(TransactionOption.Required)]
    [JustInTimeActivation(true)]
    [assembly: ApplicationActivation(ActivationOption.Server)]