DCOM下,客户端“拒绝访问”该如何解决?

MrCoolhzz 2008-08-29 01:58:39
各位大虾,小弟最经遇到一问题,迟迟解决不了,希望各位大虾多多赐教。

我在BCB上开发了一C\S模式的ActiveX Form控件,客户端和服务端是用DCOM连接的(客户端使用DCOMConnection控件)。开发是在Windows XP下,当客户端和服务器端在同一机器上时,运行正常。但是客户端远程访问服务端时,就会出错。后来在网上查了很多资料,说是DCOM设置问题,重新设置DCOM配置后,都运行正常。

但是现在要把服务端放在WINDOWS 2003 Server上,这时通过远程访问,客户端就会发出“拒绝访问”的错误,重新配置了DCOM也是如此。但是客户端和服务端都在一台WINDOWS 2003上时,运行也很正常。

所以想问问大家,到底应该怎么弄,才能让服务端在WINDOWS 2003上,客户端远程访问会正常?
...全文
2469 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
BORLANDSUN 2011-08-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 liergood 的回复:]
在你的服务器上面做如下配置.

打开<控制面板>,进入管理工具/组件服务/计算机/我的电脑
右击<我的电脑>属性,打开<我的电脑 属性>界面:
选择<默认属性>,在<默认身份验证级别>的下拉菜单中选择<无>;
选择<COM安全>,点击<访问权限>模块下的<编辑限制>按钮进行配置,将Administrators、ANONYMOUS LOGON、Everyone、Guests四个用户(组)的……
[/Quote]
5楼说的只是配置上的一步,这一步权限事实上的影响不是主要的,基本上上网查查谁都会设。主要的是CoSetProxyBlanket()函数的使用。直接使用DCOM组件是不行的,它里边没有对Windows权限做封装,所以会出现访问拒绝。
BORLANDSUN 2011-08-29
  • 打赏
  • 举报
回复
我可以帮你解决这个问题,哈哈,分要记得给我啊。
我也被这个问题困绕好几年了。去年元旦前后,下定决心一定要解决它。大约用了我10天左右的时间,终于解决。现在回过头来看看似乎很简单,但当时没有人讨论,网上资料说的方法基本上是全部行不通的(不好意思,我不是有意说楼上诸位),但起码在Windows2003、XP、Vista、Win7这些手头我能找到的机子上试,都是不行的。
Samrv.W 2011-08-29
  • 打赏
  • 举报
回复
希望5#能解決我的問題.^_^
dcbaobao 2010-05-21
  • 打赏
  • 举报
回复
如果设为交互式访问,好像不需要相同用户名和密码都能访问,不过不知道有无安全问题,但是虽然客户端的connectioned属性能设为true,不过总感觉没有连接上服务器,因为无法调用服务器的ado控件连接数据库,在客户端执行clientdataset的commondtext时提示数据库账户密码错误,但是在服务端可以正常连接数据库,真不懂怎样使用DCOM.
僵哥 2008-11-08
  • 打赏
  • 举报
回复
要么重新配置服务端的访问权限(为个方便应用,但是可能存在安全问题),要么就为DCOM访问时增加相应的用户验证信息,即所谓的身份模拟.网上应该有一个叫SecDCOMConnection的可以下载下来使用.
castlooo 2008-11-07
  • 打赏
  • 举报
回复
用户权限
lurenyi 2008-11-01
  • 打赏
  • 举报
回复
楼主验证了liergood提供的方法吗?
我也碰到这样的问题,查的资料都是要去掉服务器DCOM配置里面的every one,并要保持
客户端的用户名要在服务器上创建一样的名称和密码(这一步不知道如何实现的,在服务器上创建的都是本地用户,如何让客户端用这个名字登陆),一直没有解决。
后来我把服务器改成了域,客户端登陆到域中可以实现DCOM的连接。如果上面的方法可行,我在下次就采用这样的方式。
whomin 2008-09-24
  • 打赏
  • 举报
回复
你确定DComConnection的ComputerName已经设置成服务器IP了么?
liergood 2008-09-23
  • 打赏
  • 举报
回复
在你的服务器上面做如下配置.

打开<控制面板>,进入管理工具/组件服务/计算机/我的电脑
右击<我的电脑>属性,打开<我的电脑 属性>界面:
选择<默认属性>,在<默认身份验证级别>的下拉菜单中选择<无>;
选择<COM安全>,点击<访问权限>模块下的<编辑限制>按钮进行配置,将Administrators、ANONYMOUS LOGON、Everyone、Guests四个用户(组)的本地访问、远程访问均选择允许状态。
<访问权限>模块的<编辑默认值>设置同上;
点击<启动和激活权限>模块的<编辑限制>按钮进行配置,将Administrators、ANONYMOUS LOGON、Everyone、Guests四个用户(组)的本地访问、远程访问、本地激活、远程激活选择允许状态。
<启动和激活权限>模块的<编辑默认值>设置同上;

在<我的电脑>的子目录下选择<DCOM配置> 把你的组件的 身份验证级别 设为无,同时把“安全”配置Administrators、ANONYMOUS LOGON、Everyone、Guests四个用户(组)的完全控制、读取选择允许状态;
哦<标识>选择点击<交互式用户>.

MrCoolhzz 2008-09-10
  • 打赏
  • 举报
回复
唉。。。

怎么还没有个高手来指导一下啊。。。
castlooo 2008-09-05
  • 打赏
  • 举报
回复
WINDOWS 2003 Server
用户权限问题了
alanblack 2008-08-29
  • 打赏
  • 举报
回复
mark,gz...
BCBPLC 2008-08-29
  • 打赏
  • 举报
回复
DCOMConnection的限制太多了,主要是安全权限问题,
客户端与服务端的用户名密码要一致,
DCOM远程访问很不实用;

703

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder ActiveX/COM/DCOM
社区管理员
  • ActiveX/COM/DCOM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧