Win2000 Server + SP3系统环境,VC.Net做的ATL项目,选择进程内服务器(DLL),支持属性化编程及COM+ 1.0标准。然后添加一COM+ 1.0组件,接口:自定义(只实现vtable),支持IObjectControl(该接口是即时(JIT)激活COM+服务的一部分),事务:支持,线程模型从代码中改为"Apartment"(STA)。接口添加方法并实现后,编译成功,本地安装COM+服务器应用程序OK,导出COM+应用程序代理(.MSI)OK。但代理在Win2000 Professional(或Server,不管有没有打上SP3)客户端安装有问题,提示:Error registering COM+ application。而奇怪的是,代理在几台Win98客户机上安装倒正常(无错误信息提示,且装好后能在注册表里搜索到组件及远程计算机信息)。这到底是怎么回事啊,我就纳闷了!请高手指教!!!!!

解决方案 »

  1.   

    GOALSTAR(爱穿拖鞋的程序员) :您好,能具体谈一谈吗?
      

  2.   

    首先试试能不能手动reg dll。有时候因为ATL.dll版本不一样,导致regstar的entry point出错。如果能reg dll。再议。
      

  3.   

    To innuendo(往事如蛊心止即岸):Win2000下手动reg dll还是出错。按您说的,如果是因为ATL.dll版本不一样而导致regstar的entry point出错,应该怎么解决啊?
    我对这个问题也感到特别奇怪,没什么经验:)
      

  4.   


    你在WIN98下是正常的?我调用时为何会出现“接口不被支持”的问题?
    你的问题,我建议你:
    1、安装前将以前安装过的清理干净,不然的话,有这个问题。
    2、你可以在组件管理器里手动安装,可以提示你到底是什么错误,我就碰到这个问题,因为我有一个文件里没有组件及类型库,所以出错。
      

  5.   

    试试程序注册
    HINSTANCE hocx=::LoadLibrary(your com);
    if(hocx!=NULL)
    {
       FARPROC lpfn=::GetProcAddress(hocx,_T("DllRegisterServer"));
        if(lpfn!=NULL)
             (* lpfn)();
      ::FreeLibrary(hocx);
    }
    如果还不行 最好去组建管理器看看 :)  good luck!