delphi开发三层结构,客户端访问应用服务器出现RPC服务器不可用怎么回事?(100)

  • 主题发起人 主题发起人 gl_tv
  • 开始时间 开始时间
G

gl_tv

Unregistered / Unconfirmed
GUEST, unregistred user!
客户端是通过DCOMConnection连接服务器的,客户端和服务器同放在本机运行没问题,但将服务器放在别的机器上,访问时就出现“RPC服务器不可用”。但我在本机直接在运行那输入服务器地址是可以访问到共享文件的,互PING 也没问题,DCOMConnection的serverGUID 是自动生成的应该没错,到底是什么原因啊?请高手指点下,谢谢哈!
 
如果是跨网段就很困难了.
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3944537
 
最好用SOCKET,又老又成熟,并且支持手工封包和加密。。。。。DCOM一走跨网段就报错,没装COM服务也报错。
 
在开始/运行中,运行DCOMCNFG.exe,配置该服务端的windows用户访问权限。不清楚的,你可以从这个方向上,查找一些资料,你的问题应该是这个引起的,以前我们用DCOM时,也是这样配置的,不配置,别的机器就没法访问。当然,比较好的方法,还是更改为socketConnection,这样在客户那边安装程序也简单,而且,对你来说,代码的修改工作量应该并不大。
 
服务器是什么系统?在同一网段吗?
 
第一,确定做了配置,DCOM是要配置的,SOCK就比较简单不用服务端的分发和设定在多层应用系统中,分发服务比较复杂。1。决定使用存取控制的权限。如果你有WINDOWS NT做为应用程序服务器的平台,那么建议使用‘用户级存取控制’2。执行应用程序服务器一次以注册应用程序服务器。3。拷贝MIDAS。DLL到系统子目录中。而且必须注册。你可以使用TREGSRV32来注册MIDAS。DLL4。拷贝IDPROV32.DLL到BDE数据库引擎的子目录中。5。使用DCOMCNFG设置应用程序服务器的存取权限。在通常情况下,可以将验证等级设定为‘无’,并且把存取控制和激活控制设置为EVERYONE就可以让所有的客户端用户激活和存取应用程序服务器。6。如果目前使用的DCOM是对于95的话,强烈建议你升级到98,否则程序员必须自行激活RPCSS。EXE至此,分发过程已经结束,如果还有问题,请使用DELPHI5的MODULE VIEWER来观察。当程序员使用DELPHI开发分布式多层应用系统后,除了将应用程序序列分发之外,还必须使用DCOM的配置应用程序DCOMCNFG.EXE来进行设置。在WIN9.X系列中进行DCOM之前,应确认是否装有DCOM,如果没有,可从WWW.Microsoft.com下载。WIN9.X配置为DCOM服务器第一步就是将访问控制设置为用户级控制。在‘获取用户及组的列表中’输入该局域网中能提供安全权限的机器名(该计算机必须正在运行)。第二步就是运行位于系统目录下的.exe文件。在应用程序列表中应该能够找到你所编制的应用程序,如果没有列出,请将你所编的程序运行一次。通常,我们可以通过修改默认属性及默认安全性来达到一定的目的,在‘默认属性’页中,让‘启动该计算机的分布式COM’选项选中,而‘默认的身份验证级别’中‘连接’的意思代表‘只在客户端第一次连结应用程序服务器时检查客户端的权限’。‘默认的模拟级别’中‘识别’的意义为‘在这种模式下,服务端可以取得连结的客户端的权限信息,但是服务端无法以连结的客户端的权限存取系统对象’。当其设为‘模拟’时,表明‘服务端可以取得连结的客户端的权限信息,并且能够以连结的客户端的权限存取系统对象’。在默认属性页中,还有一个‘为跟踪引用提供附加的安全性’的选项。这个设置可以让应用程序服务器使用COM/DCOM的回叫机制以保持COM/DCOM中远程调用参考计数值(reference count)的正确性,以避免客户端应用程序恶意的调用应用服务器并且断线。选中这个选项可以让应用程序服务器有效的管理其生命周期,但是也会减缓应用程序服务执行的速度。上述的内容其实在DCOMCNFG的帮助之中都有,我这番解说有些画蛇添足,但我对它配置的建议就是,尽量使用默认值。在NT中的一些配置也极其相似。但要理解以下的概念激活控制:就是指哪些用户可以激活应用程序服务器。当客户端应用程序执行并且试着在远程机器之中激活应用程序服务器时,COM/DCOM的安全机制会检查这个客户端应用程序登录的用户是否有权限中以激活应用程序。存取控制:指当应用程序服务器由适当的用户激活后,哪些用户可以存取应用程序服务器所提供的服务。此外,一个应用程序服务器可以提供数种不同的服务,取存控制能够限定特定的用户进行特定的操作认证控制:是指在数据进行传递时,数据是否加密鉴定控制:是指应用程序服务器的权限。即指在服务器上登陆的用户,他所执行的应用程序服务器所存取的资源是否在他的权限范围之内。第二/确认网络不存在问题,PING得通吗,网上邻居可以用吗第三/确认端口OK吗,有没被关了
 
后退
顶部