X xujh Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-24 #1 我将COM+组件发布到了客户机上,然后在客户机上运行客户端软件,该软件在COM+服务器上是可以正常运行,但在客户端却在Co组件名.Create或者是Co组件名.CreateRemote时,报“Interface not supported”,有谁遇到搞类似的情况,请帮忙解决
我将COM+组件发布到了客户机上,然后在客户机上运行客户端软件,该软件在COM+服务器上是可以正常运行,但在客户端却在Co组件名.Create或者是Co组件名.CreateRemote时,报“Interface not supported”,有谁遇到搞类似的情况,请帮忙解决
F fly2003 Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-24 #2 你的dll 注册没有。 要注册以下 再用 要是联机 还有配置以下
X xujh Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-24 #3 fly2003,很多问题都是会者不难,难者不会的,你能否详细说明一下你的分发过程?
胡 胡萝卜 Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-24 #5 我是用客户端调用协调COM+,再由协调COM+调用逻辑COM+. 我在 逻辑COM+上放置了TADOConnection,TADOQuery,TDataSetProvider; 协调COM+上放置了TSocketConnection,TClientDataSet; 在协调COM+上用连接TSocketConnection逻辑COM+,取得数据. 我用客户端如何连接协调COM+,并取得数据. 如果解决问题,我另开论题,论功行赏.谢谢!!!
我是用客户端调用协调COM+,再由协调COM+调用逻辑COM+. 我在 逻辑COM+上放置了TADOConnection,TADOQuery,TDataSetProvider; 协调COM+上放置了TSocketConnection,TClientDataSet; 在协调COM+上用连接TSocketConnection逻辑COM+,取得数据. 我用客户端如何连接协调COM+,并取得数据. 如果解决问题,我另开论题,论功行赏.谢谢!!!
X xujh Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-24 #6 协调COM+上应该放置 TDComConnection,这样在COM+内部采用DCOM方式连通,但要注意在COM+内部创建另一个COM+时,一定要采用Context接口,建议你最好参考李维的ADO那本书,上面讲的很清楚。虽然他采用了修改Delphi源码的方案,我不是很满意。但也可以自己管理
协调COM+上应该放置 TDComConnection,这样在COM+内部采用DCOM方式连通,但要注意在COM+内部创建另一个COM+时,一定要采用Context接口,建议你最好参考李维的ADO那本书,上面讲的很清楚。虽然他采用了修改Delphi源码的方案,我不是很满意。但也可以自己管理
F fly2003 Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-25 #7 开始/运行/DCOMCNFG/然后激活dcomcnfg.exe 配置成: 常规页: 连接 位置: 在本机 按全性: 1。使用自定义的访问权限 Administrator EveryOne Interactive System 2.使用自定义启动权限 同1。 3。默认 标志: 交互式登陆 (应用服务器用Administrator登陆,客户也用Administrator登陆应该没问题, 另外注意应用服务的数据集(如TTable控件的Active 设成False,TDatabase的LoginPromp t设成false) 对了 ,要在客户端把你服务端dll注册以下。
开始/运行/DCOMCNFG/然后激活dcomcnfg.exe 配置成: 常规页: 连接 位置: 在本机 按全性: 1。使用自定义的访问权限 Administrator EveryOne Interactive System 2.使用自定义启动权限 同1。 3。默认 标志: 交互式登陆 (应用服务器用Administrator登陆,客户也用Administrator登陆应该没问题, 另外注意应用服务的数据集(如TTable控件的Active 设成False,TDatabase的LoginPromp t设成false) 对了 ,要在客户端把你服务端dll注册以下。
X xujh Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-25 #8 经测试,一切已经解决了。原因如下: --------------------------------------------------- 1.在Delphi6和Delphi7中,开发COM+组件时,首先要先生成ActiveX Library做为COM+容器,然后在上面添加一个Transactional Object或Transactional DataModule。不能直接创建Transactional Object。这会导致客户端报告"Interface not supported" 2.在Windows工作组网络环境中,需要在COM+服务器中设定一个用户,比如:COM_USER,然后在COM+组件的角色中加入这个用户,客户端也必须有这个同名用户,并以这个用户登录,这样才不会出现“拒绝访问”错误,这里,我特别要说的是服务器和客户端的COM_USER密码也必须一样,但如果在Windows2003环境中一定还要注意密码不能为空,切记。否则,系统将禁止你访问服务器中的接口,总之,可以先用URL方式试一试是否可以连入服务器,例如输入//192.168.0.100。而且,Windows2000环境下安装COM+组件后默认是没有强制安全检查的,但在Windows2003中则默认就有这个选项。故而有些在Windows2000环境下调试通过的COM+组件换到Win2003下可能就变成了“拒绝访问”了。另外要说的是,如果密码为空,则会在客户端运行程序时也会提示"Interface not supported"。 3.在客户端程序中,使用COXXXXXX.Create建立COM+的接口时,发现访问数据库竟然是使用本地的连接名,正好我的客户机上没有服务器上建立的Oracle连接名,所以报出错来。后改为CoXXXXXXX.CreateRemote(服务器名)后解决问题。这里还是有些不太理解,既然要在本地安装应用程序代理,就应该使用的是服务器端的连接啊,而且,COM+组件的激活页中是可以指定COM+服务器的位置的,那么CreateRemote中一旦指定死了,不久没有用了吗? 以上是我的简单测试结果,可能还会有没注意到的地方,也还有很多要测试的东西,比如,COM_USER应该分配什么样的权限以满足只能访问COM+,而不能变成超级用户来控制服务器。 以后会逐步把测试结果写出来
经测试,一切已经解决了。原因如下: --------------------------------------------------- 1.在Delphi6和Delphi7中,开发COM+组件时,首先要先生成ActiveX Library做为COM+容器,然后在上面添加一个Transactional Object或Transactional DataModule。不能直接创建Transactional Object。这会导致客户端报告"Interface not supported" 2.在Windows工作组网络环境中,需要在COM+服务器中设定一个用户,比如:COM_USER,然后在COM+组件的角色中加入这个用户,客户端也必须有这个同名用户,并以这个用户登录,这样才不会出现“拒绝访问”错误,这里,我特别要说的是服务器和客户端的COM_USER密码也必须一样,但如果在Windows2003环境中一定还要注意密码不能为空,切记。否则,系统将禁止你访问服务器中的接口,总之,可以先用URL方式试一试是否可以连入服务器,例如输入//192.168.0.100。而且,Windows2000环境下安装COM+组件后默认是没有强制安全检查的,但在Windows2003中则默认就有这个选项。故而有些在Windows2000环境下调试通过的COM+组件换到Win2003下可能就变成了“拒绝访问”了。另外要说的是,如果密码为空,则会在客户端运行程序时也会提示"Interface not supported"。 3.在客户端程序中,使用COXXXXXX.Create建立COM+的接口时,发现访问数据库竟然是使用本地的连接名,正好我的客户机上没有服务器上建立的Oracle连接名,所以报出错来。后改为CoXXXXXXX.CreateRemote(服务器名)后解决问题。这里还是有些不太理解,既然要在本地安装应用程序代理,就应该使用的是服务器端的连接啊,而且,COM+组件的激活页中是可以指定COM+服务器的位置的,那么CreateRemote中一旦指定死了,不久没有用了吗? 以上是我的简单测试结果,可能还会有没注意到的地方,也还有很多要测试的东西,比如,COM_USER应该分配什么样的权限以满足只能访问COM+,而不能变成超级用户来控制服务器。 以后会逐步把测试结果写出来