VB调用服务器上的COM+,出错:实时错误'70'拒绝的权限--在线等高手
我在A机上放了DLL组件(并生成了MSI文件)
在B机器上执行了(MSI文件和安装),可是在访问时去出现了上面的错误是为什么?
详细步骤!
1、首先在VB中写一ActiveX(DLL)组件,工程名为COMTEST。编译后在另一程序中调用,确认组件工作正常。
2、打开“控制面板/管理/组件服务”,在“COM+应用程序”下利用“COM+应用程序安装向导”创建一个空的COM+应用程序,名称为“COMTEST”。
3、在“COMTEST”下,新建“组件”,在“组件安装向导”中,选择“安装新组件”(注意:不要使用“导入已被注册的组件”),然后将生成的dll及tlb都添加进来(两个文件都要!),完成。
4、右击“COM+应用程序”上方的“我的电脑”,选择“属性”,然后在“属性”对话框中的“默认属性”页下,将“默认身份验证级”改为“无”,将“默认模拟级别”改为“匿名”,然后在“默认安全设置”页下的默认启动权限里添加"Everyone",确定。(这里是匿名关键之一)
5、在本地用户管理里启用Guest用户!(这就是有人说权限里设置了Everyone仍然无法访问的原因)
6、右击“COMTEST”,导出客户端的“应用代理”。注意:在导出对话框中,必须选择“应用程序代理”而不是“服务器应用程序”!并将导出的文件在客户机安装!
7、好了!现在就可以在客户端进行调用了,点击运行后第一次运行在数秒弹出希望看到的运行结果,在激活服务器的准备状态以后的运行通常都在半秒内响应完成!(注:VB状态下加垃圾机器)
我要是设置客户端电脑登陆的用户名和密码跟服务器上的用户名和密码一样,就可以使用,难道不可以用其他用户使用服务器上的COM+服务.
服务端是WIN2003 SERVER 调用客户端是WINXP
[解决办法]
恩,是这样的
你可以在服务器端加上客户端电脑用的用户密码
给一个普通权限即可
[解决办法]
除非是使用WINDOWS2003的域管理; 实质是一样的,因为域用户也都是用服务器管理的; 服务器端必须加上每个客户端的登陆用户密码,没其他办法
[解决办法]
对了,权限还得是Power User以上的才行
[解决办法]
可以,效果是一样的,总之就是客户端使用的用户要在服务器端能身份验证通过即可;服务器端该用户的权限必须为Power User以上的权限组
所有的三层结构都是这样的,这个是COM+的权限设置问题
如果修改了貌似容易出问题,所以一般都是这样设置的