win2k下的Dcom配置问题(200分)

  • 主题发起人 主题发起人 高小五
  • 开始时间 开始时间

高小五

Unregistered / Unconfirmed
GUEST, unregistred user!
我的服务器端为: Win2k + oracle
客户端为: Win98
连接方式为:DCOM
Win2k的dcom配置应该没问题,我都配置了n次了,客户端就是不通提示‘rpc服务器无法使用',
更为奇怪的是有几天是好的,有几天不行。win2k的脾气好一些,怎么都能通,Win2k不想
让通,怎么都不行。我将服务器端装在Win98(与客户端不在同一机器上)、nt4都非常顺利,为什么Win2k
如此难使。
现在可以用Administrator用户连接,但这样治标不治本,意味着我的每个客户端
都要以Administrator登录,而且鬼知道哪天Administrator也不能正常连接。
各位兄台、高手有没有什么好办法?先谢谢了。
 
用什么DCOM,会搞死人的!
 
正想用W2K,听一下。
 
在Win2k上建一用户,客户端均以此用户名/密码登陆
 
解决方法如同Beyond2002据说。
建议参考下面的贴子:
http://www.csdn.net/Expert/TopicView1.asp?id=1052799
 
非常非常感谢Sachow兄,您的贴子
http://www.csdn.net/Expert/TopicView1.asp?id=1052799我也看了,
但我在win2k服务器上的用户究竟该要什么权限,我给了与
Administrator相同的权限还是不行,Sachow大哥,如果用一般用户,
能连接通吗?
 
十分感谢lop,Beyond2002,X-man

 
普通用户就可以了。但是如果非法用户登陆时,也会产生一个连接,而且此连接不会
自动断开,从而会消耗服务器的内存,不知如何解决?
 
To:Beyond2002,
我用普通用户可以远程激活dCom服务器,但就是提示
“拒绝访问”,公司有两台Win2k服务器,一个可以,
一个无论如何都不行,我不知道怎么得罪Microsoft了?
 
如果你客户端(例如是Win2000或WinXP的)在系统启动时要使用Administrator用户登录,
那么客户端的Administrator用户密码需要和服务器的一样,才能通过Windows的权限验证
机制,成功地调用服务器组件,但这样显然非常不安全。服务器只需要建立一个普通的用户
就可以了,用户组只需默认的“Users”组就行了,没有必要给这个用户太高的权限。
举个例子:服务器端和客户端用的都是Win2000 Professional版,在两台机器上都建立名为
DCOMCaller(取什么名无所谓)的用户,密码都为“1234”(注意密码也要一样哦!),
服务器端在系统启动时可以仍用Administrator用户,客户端用DCOMCaller用户登录,组件
就能被成功调用了,你试试看,很简单的,我这边已经屡试不爽了。
 
不会吧?Sachow大哥,我这样已试了四、五天了,服务器端是win2k server,
客户端登录用户名与口令应该是没问题的。您说我这是邪门了,是不是与我的
服务器有两块网卡有关系?奇怪的是前几天一直很正常,正象您说得“屡试不爽”,
可这几天不知道为什么?“屡试不通”
 
同意楼上
 
想必你在用CreateRemote的时候用主机名和IP两种都试过了吧……
我们的服务器也有两块网卡,但其中一块是作主/备机通信用的,外部访问的到的地址只是
其中一块网卡。
对了,我突然想起来我以前也遇到过突然莫名奇妙访问不了的情况,害我白忙了两天,原因
是我的服务器端组件被修改过,接口参数等的都改了,但客户端的COM+代理没有更新(换句
话说,就是客户端的接口注册没有更新),结果就导致了调用失败,还害得我老往权限方面
的想原因呢!
 
我是服务器端组件应该是最新的,我已经将注册表内我的组件的相应键值删了
又注册,折腾了好几次了,实在不行我就用Administrator吧,按Sachow说得应
该没问题,因为两台Win2k server有一台是好的。
 
况且我用Win98(Dcom app server装在不同的机器上)、winnt4都试过,
用起来也很稳定,问题是用户现在用的是win2k server,且其它模快在
这个平台上已运行了快一年了,只好硬着头皮用win2k,哪知如此不此不
顺,谢谢Sachow、Beyond2002兄
 
有时运行客户端时,服务器的系统日志有“{。。。。。}DCOM没在限定的时间内注册”
事件ID:10010的错误,msdn也看不出个所以然,遇鬼了.
 
我用的是COM+(照理应该和DCOM一样,但也许有些不同),我们的服务器是两台Win2000
Advanced Server(Cluster),而且我的做法是在从Win98到Win2000 Pro再到Advanced
Server都试过可行我才敢用的。
我还有最后一招狠招,就是客户端用TSocketConnection连接服务器,服务器端运行Borland
SocketServer(在Bin目录下),这样就不会调用失败了,我试过的。但这样要改客户端程序,
对于你来说可能是无法接受的。
 
但这样要运行 Borland的SocketServer.exe,客户端也要修改,还不知道这样
会有什么其它问题。谢谢Sachow兄这么晚还在关注小弟的问题。
 
更为恐怖的是我新建一个应用服务器程序,放一个数据模块居然可以连通,
这不是喜新厌旧吗?而且已做好的应用服务器还无法采取新建一个工程,加
入已建好的数据模块这种办法,因为Delphi的Tlb文件不能反向生成。
 
要改的只有客户端程序。服务器端根本不需要作任何修改,因为Borland SocketServer是一个
代理程序,它在应用服务器所在的机器上进行本地的COM调用,调用成功后再通过TServerSocket
与客户端通信,将调用后的结果发送到客户端。
客户端只需要在数据模块里放置一个TSocketConnection,剩下的就是用Later Binding
或Diapatch Table的方式调用TSocketConnection.AppServer,其余部分客户端程序基本都
不用动。如果你有一天的时间就可以完成整个转变(如果程序不复杂的话,也许半天就够了)。
但决定转变前一定要记住备份你以前的版本。
 
后退
顶部