我客户端和服务端是分开的 现在在客户端可以创建实例但是不能访问方法
报 E_ACCESSDENIED (拒绝访问) 怎样设置COM+组件 才能让客户端匿名调用服务器上的组件

解决方案 »

  1.   

    设置dll文件的访问权限为IUSR_机器名
      

  2.   

    文件访问权限是什么意思?在那里设定?
    Com+组件的访问控制因该是在控制台设定“鉴定”和“授权”完成的吧?
      

  3.   

    首先服务器的组件要设置为不校验用户,然后在客户端程序中初始化COM环境时也要设置为不校验用户
      

  4.   

    和文件权限无关  我能创建组件  只是不能调用他的方法  我没有访问方法的权限!!!
    我在方法中用IsecurityCallContext得到基客户 来进行安全控制  但是我连访问那个方法的权限都没有!!
      

  5.   

    COM+的角色安全是建立在操作系统的安全机制上的,因此你必须先通过操作系统的安全认证COM+的角色限制才起作用,所以你必须以服务器的用户帐户登陆才行。如果你的计算机在域中而COM+应用程序安装在域控制器上,那么你用域帐户登陆是不会出现这个问题的。
      

  6.   

    tech_ajun()  的方法我用过的不行!!!
      

  7.   

    我知道远端调用需要COM+目录  在对等网如果我把组件信息写入本地COM+目录能不能突破这个限制?
      

  8.   

    这样做当然可以突破这个限制。但还有什么意义呢,你的本地计算机其实已经变成了COM+服务器,每个实现都在本地完成。已经完全脱离了分布系统。