公司网络是对等网,无域控制器,在delphi6下创建了Activex下的COM Object和Transactional Object对象,在服务器的组件服务中配置好,设置默认的身份验证级是无,调用的身份验证级是无,模拟级是匿名,启用服务器上的guest用户,密码为空,然后添加角色加入用户EveryOne,并把默认的访问权限和默认的启动权限给予EveryOne,导出com组件的代理安装程序并安装到客户端,把com组件的类型库拷贝到客户端并注册,在客户端运行调用com+组件的接口方法,提示Interface not supported,如果在服务器上运行客户端程序则很正常或者客户端的用户名和密码于服务器端的相同也可正常调用。我是用CreateRemoteComObject(MachineName, CLASS_tdmTest)方法获取接口的。请各位高手救命啊!怎样才能在客户端匿名调用服务器上的com+接口???????????

解决方案 »

  1.   

    不允许匿名访问是安全机制的约束,其实认真想来是好事...只是WINDOWS这种机制要理解透比较费力..
    ..就是关于WINDOWS安全机制的东西...
    你去看一本书..
    《Windows安全性编程》
      

  2.   

    这是我所找到的其中一个解决办法,我试过了,失败。
    http://news.newhua.com/html/Delphi/2005-12/1/0512110361827356_72.shtml
      

  3.   

    使用 IDispach接口,不要使用IInterFace接口
      

  4.   

    I**Disp(CreateRemoteComObject('',ClassID) as IDispatch;);其实就是前期邦定。
      

  5.   

    这个大概需要这样,电脑在一个网段,一个工作组,然后代理运行权限是工作组EVERYONE
      

  6.   

    I**Disp(CreateRemoteComObject('',ClassID) as IDispatch;);其实就是前期邦定。二楼的这个方法我试过了,不行,而且我想了一下,能否远程访问应该与IDispatch接口无关,这中类型个接口主要作用是为了能在脚本语言中创建com对象访问接口的方法。
      

  7.   

    几乎试遍了网上介绍的所谓解决匿名远程调用com+服务的方法,没有一个成功的,不知是我笨呢,还是我的电脑太笨!!!!看来不指望了!
      

  8.   

    我也是这个问题,我在建Transaction Object时选的是Supported Transaction
    错误提示是"RPC服务器不可用"