远程调用COM+时经常会遇到下面的错误:
Error: 70 Description: Permission denied
这时就要进行授权(这个方法只能调通Win7与Win7,无法调通Win7与XP)。
首先是服务端配置:
1、首先在COM+服务端新建一个用户,比如COMPTEST,用户一定要加入组Distributed COM Users。(XP没有这个组,我用了Administrator权限依然不可以。。。)
2、在COM+服务端运行
#32位系统32位COM,64位系统64位COM dcomcnfg #64位系统32位COM comexp.msc -32
3、在“服务组件-》计算机-》我的电脑”右键,属性
默认属性-》确认DCOM服务开启
4、在“服务组件-》计算机-》我的电脑-》COM+应用程序”,对应的COM+应用程序上,右键,属性
安全性-》授权,取消勾选
安全性-》安全性级别,改为Process
安全性-》将身份验证级别修改为无
安全性-》将模拟级别改为匿名
激活-》激活类型改为应用程序
5、在在“服务组件-》计算机-》我的电脑-》COM+应用程序-》对应COM+应用程序-》组件”,对应的COM+组件上,右键,属性
安全性-》授权,取消勾选
然后是客户端配置
1、在客户端,添加服务端的COMPTEST用户凭证
搞定!
PS:如果还不行的话,再设置下面的内容
1、在“服务组件-》计算机-》我的电脑”右键,属性
默认属性-》将默认身份验证基本修改为无
默认属性-》将默认模拟级别改为匿名
COM安全-》访问权限,添加Everyone及匿名用户
COM安全-》启动与激活权限,添加Everyone及匿名用户
2、然后要修改一下本地安全策略,让匿名用户与Everyone权限相同
3、然后修改本地安全策略,让DCOM可以Everyone操作