客户机器上的用户在服务器上有没有,并且有没权限访问。
另外,你可以在程序中指定用户名和密码。
但是服务器上设置NETWORK有权限

解决方案 »

  1.   

    终于有人了,让人高兴。
    我在服务器上通过用户管理把客户机器的User和passwd加到了服务器中。
    可还是一样的错。 wyzegg(找工作中...) ,能帮忙吗?
      

  2.   

    好!我把客户端的代码贴出来。顺便问问是不是需要在俩台机上都要注册server端阿?         COSERVERINFO cs;
    memset(&cs,0,sizeof(cs));
    cs.pwszName="adsl"; MULTI_QI qi[1];
    memset(qi,0,sizeof(qi)); 
    hr=CoInitialize(0);
    ShowStatus(hr);
    if(SUCCEEDED(hr))
    {
    hr=CoInitializeSecurity(NULL,-1,NULL,NULL,
    RPC_C_AUTHN_LEVEL_NONE,
    RPC_C_IMP_LEVEL_IMPERSONATE,NULL,EOAC_NONE,NULL);
    ShowStatus(hr);
    } if(SUCCEEDED(hr))
    {
    qi[0].pIID=&IID_ITelFeeCom;
    hr=CoCreateInstanceEx(CLSID_TelFeeCom,
    NULL,
    CLSCTX_SERVER,
    &cs,
    1,
    qi);
    ShowStatus(hr);
    if(hr==REGDB_E_CLASSNOTREG) cout<<"class not registered"<<endl;
    if(hr==CLASS_E_NOAGGREGATION) cout<<"class can't be Aggregated"<<endl;
    }
    if(SUCCEEDED(hr))
    {
    float  Fee;
    _bstr_t Ip="84048866";
    pI=(ITelFeeCom*)qi[0].pItf;
    hr=pI->GetFee(Ip,&Fee);
    ShowStatus(hr);
    cout<<"it is "<<Fee<<endl;
    pI->Release();
    }
    CoUninitialize();
      

  3.   

    我看了看msdn.发现有下面一段:客户注册表中指定的服务器不正确 在客户机上,请使用以下步骤验证是否正确委派了 DCOM 服务器。 该场景适用于 Windows 2000、Windows NT、Windows 95、Windows 98 和 Windows Me 客户端。 在客户机上,运行 DCOM Config 工具 (Dcomcnfg.exe)。 从 Applications 选项卡上选择 DCOM Server,然后选择 Properties。 
    在 General 选项卡上,确保有 Remote Computer 项,并且远程计算机名称正. 如果计算机名不正确,请选择 Location 选项卡。 
    确保已复选 Run application on this computer 设置。 在本节下面的对话框中,为 DCOM 服务器键入正确的计算机名。 
    问题是,在client端没有注册com server阿,在client计算机上
    用DCOM Config 工具 (dcomcnfg.exe) 找不到这个Com server.是不是com server 在client和server端都要注册?
      

  4.   

    我以前作过ActiveX自动化的系统,就是这样的:)
    DCOM我还没来得及看,
    呵呵,工具都一样,我想应该没问题,多试验几次:)
    祝你好运!
      

  5.   

    什么?还不行?
    在看看这个:
    在注册表里,HKEY_LOCAL_MACHINE\SOFTWARE\CLSID\AppID...\CLSID\{xxxxx...  .....  xxxx} = "your dcom name"
    \LocalServer32 = "c:\yourpath\yourappname.exe"
    \ProgID = "your dcom id"这是普通的com。
    看看DCOM:
    ...\CLSID\{xxxxx...  .....  xxxx} = "your dcom name"
    \RemoteServerName = "192.168.5.2"你不应该先在客户端注册组件,如果你这样做了,启动时候就会去找
    本地的组件,你要删除原有的注册,重新来。使用网址注册。
      

  6.   

    在客户端和服务器端都注册服务器
    并且,如果服务器是98,那你先启动它
    如果是动态库的话,先启动rpcss.exe