在windowsXP系统下,我采用DCOM方式,先在本机上试验(数据库access、服务器包括adoquery1和datasetprovider、客户端包括DCOMConnection、clientdataset、database),一切都很正常,没有什么问题。后来我把客户端程序(已生成exe)发送到另一台机器上(该机器在workgroup工作组),我自己这台机器作为服务器(我的机器在Mshome工作组),其结果是程序打不开,出现windows系统提示“你的client.exe遇到问题需要关闭,详细情况请……”,,后来我就在那台机器上(作为客户端的机器上)安装了delphi   ,在设置DCOMConnection时候,出现只要一点击connected属性,就出现“RPC服务器不可用”,我估计是我服务器这边没有设置好,于是参照以下步骤进行设置:
步骤一:
1。运行Server.dpr,注册服务器端注册服务器   
  2.在Client端运行服务器程序注册服务器(注意:最好通过网络邻居运行服务器端的   
  服务器,而不是把服务器程序拷到Client端运行)   
  3.服务器端执行DComCnfg.exe(C:\Windows\System)   
  4.打开“默认安全机制”页   
  5.“默认访问权限”中加入EveryOne用户   
  6.“默认启动权限”中加入EveryOne用户   
  7.在“应用程序”页中选择你的服务器,打开属性   
  8.在“安全性”中选择默认的访问权限与默认的启动权限   
  (其实,也可以用自定义权限,只要加入EveryOne用户)   
  9.在“身份标识”页中改为“交互式用户”   
  9.客户端运行DComCnfg.exe   
  10.“应用程序”->“位置”中,加入“在下列计算机运行应用程序”   
      (注意:要加入你的服务器端计算机名在下列计算机中)步骤二;
点击“开始→运行”,键入“Regedit”打开“注册表编辑器”,展开分支“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcSs”,将Start项的值修改为16进制的“X00000002”,重新启动步骤三:
把midas.dll复制到客户端下system32以上三个步骤全部做完后,还是不行,只要一点击DCOMConnection的connected属性,还是出现“RPC服务器不可用”,小弟希望大家帮帮我

解决方案 »

  1.   

    [WINDOW]RPC服务器不可用解决方法
    淡淡猪猪 发表于 2006-8-14 14:52:00
        今天得到通知,要重新搬个卡座办公了~呵呵,新部门的呆了三个月换了三次地方了~~晕死哦~~换就换吧,电脑接好后,由于原来用的固定IP,新换地方网关换了,肯定得换IP地址啊, 设置为自动获取, 晕到, 一直在不停的获取,就是获取不到,肯定有问题了,查看下网络情况吧,开始---运行CMD----输入IPCONFIG /ALL  获取的地址全是0.0.0.0,在试下 IPCONFIG /RENEW,提示英文 网卡获取失败,RPC服务器不可用.不会吧,上午电脑都能正常用的,没啥不正常啊,换了个地方就不行了~```排除线路问题.是网线问题?换了个网线,试不通.哎~~~没法,网卡问题吗?我是双网卡,换了个试了扔不行.怪了, 难道是昨天自动更新完就有问题了?上网看看有什么新发现不?搜索了下别人处理的方法转了过来,大多都是说要开启RPC服务,XP系统参照1.RPC服务没有启动
    "开始"--〉"设置"--〉"控制面板"找到"管理工具"--〉"服务",或者     "开始"-------------"运行"services.msc找到"remote procedure call (rpc)",双击打开,在"启动类型"里选择"自动"后,点击确定;最后重新启动电脑后,按照正确的方法再安装一遍软件即可解决问题。
    另外,如果您的系统是xp,在重新启动安装之前,“开始”——》“运行”,运行msconfig,选择的是“正常启动”,则就会加载所有服务,包括rpc服务;选择是“有选择的启动”,您必须选中“加载系统服务”一项保证服务启动时加载。2.开启DCOM 服务"开始"--〉"设置"--〉"控制面板"找到"管理工具"--〉"服务",找到"DCOM Server Process Launcher",双击打开,在"启动类型"里选择"自动"后,点击确定;最后重新启动电脑后,按照正确的方法再安装一遍软件即可解决问题。试了 没用~~`后来想了想,昨天关机的时候提示系统更新,WINDOWS自带的更新.难道是更新完后就这样了?更新完后系统关闭了某些服务吗?如果大家更新后也出现了这样的问题,可以参照解决.我打开如下服务remote procedure call 服务DCOM服务 最后还要记得开启,DHCP Client服务,网上都没人提到,难道这些服务都是已经开启了的吗?就OK了! 
      

  2.   

    刚才按照楼上的尝试了一遍,还是不行,windowsxp已经完全自动按照楼上的兄弟设置的。
      

  3.   

    to 1024office 兄弟:   我应该怎么排除呢,我把该尝试的都尝试了,连两边的防火墙也关闭了,还是不行
      

  4.   

    这么说,你还是坚持走这条路线咯?
    你确定?
    肯定?
    防火墙是不管这个的,这个一般有两个地方设定的,一个是注册表,一个是你的系统检测软件,如360safe,瑞星杀毒软件等等.关于注册表关闭了这个功能的话,你到可以直接修改注册表来实现的,方法很多,你可以baidu一下"注册表 U盘自动运行"如果是系统监测软件的话,就更好办了,直接把那些关掉,当然要注意,有些软件,如瑞星,是有服务在运行的,而这些服务你是中断不掉的,要到安全模式上去停止.加油咯,LZ!^_^
      

  5.   

    一。
    1.运行Server.dpr,注册服务器端注册服务器   
      2.在Client端运行服务器程序注册服务器(注意:最好通过网络邻居运行服务器端的   
      服务器,而不是把服务器程序拷到Client端运行)   
      3.服务器端执行DComCnfg.exe(C:\Windows\System)   
      4.打开“默认安全机制”页   
      5.“默认访问权限”中加入EveryOne用户   
      6.“默认启动权限”中加入EveryOne用户   
      7.在“应用程序”页中选择你的服务器,打开属性   
      8.在“安全性”中选择默认的访问权限与默认的启动权限   
      (其实,也可以用自定义权限,只要加入EveryOne用户)   
      9.在“身份标识”页中改为“交互式用户”   
      9.客户端运行DComCnfg.exe   
      10.“应用程序”->“位置”中,加入“在下列计算机运行应用程序”   
          (注意:要加入你的服务器端计算机名在下列计算机中)二。点击“开始→运行”,键入“Regedit”打开“注册表编辑器”,展开分支“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcSs”,将Start项的值修改为“00000002”,重新启动系统即可。
    三。把midas.dll复制到客户端下1、DCOM配置如果在Windows NT环境下正常运行应用服务器,必须进行DCOM配置。配置方法如下:1)    运行NT服务器上的dcomcnfg程序,进行DCOM配置。2)     进入DCOM的总体默认属性页面,将“在这台计算机上启用分布式COM”打上勾,将默认身份级别改为“无”。3)     进入DCOM的总体默认安全机制页面,确认默认访问权限和默认启动权限中的默认值无EveryOne,如果不去掉EveryOne,应用服务器不能正常启动。4)    在常规页面中,双击你的应用服务器,打开你的应用服务器DCOM属性设置。5)    将常规页面中的身份验证级别改为“无”。6)    位置页面中选上“在这台计算机上运行应用程序”。7)    将安全性页面设置中,均选择“使用自定义访问权限”,编辑每一个权限,将EveryOne加入用户列表中。8)    身份标识页面中,选择“交互式用户”。、网络环境Ⅰ:应用服务器运行在域服务器上(Win2000 Server),客户端运行在域里的用户机上(Win2000、Win98、Win95)1、  客户端:(1)       客户端机器如果是Win98,则必须先安装DCOM98(发现Win98第二版也没有DCOM?);(2)       客户端机器如果是Win98,则设定为“用户级存取控制”或“共享级存取控制”都可以;(3)       客户端不需配置DCOM、只需配置应用服务器端的DCOM;(4)       ※ 客户端也不需要注册应用服务器的类型库(Type Library)信息。2、  应用服务器端:(1)       运行DCOMCNFG.EXE,打开“分布式COM配置属性”窗口;(2)       全局安全性设置:设置“默认属性”页的“默认身份验证级别”为“无”;(3)       特定COM应用程序的安全性设置:a、“安全性”页,设置“使用自定义访问权限”、“使用自定义启动权限”;b。、※ “身份标识”页,最好选择“指定用户”(调试时可选择“交互式用户”;最好不要使用“启动用户”,除非应用服务器和客户端在同一台机器上)。 二、网络环境Ⅱ:非域环境,应用服务器运行在Win2000上(Win2000 Server或Professional),客户端运行在Win2000、Win98、Win95上1、  客户端:(1)       客户端机器如果是Win98,则必须先安装DCOM98(发现Win98第二版也没有DCOM?);(2)       客户端机器如果是Win98,则设定为“用户级存取控制”或“共享级存取控制”都可以;(3)       客户端不需配置DCOM、只需配置应用服务器端的DCOM;(4)       ※ 客户端需要注册应用服务器的类型库(Type Library)信息;(5)       ※ 在应用服务器端机器的操作系统里要存在登录客户端机器用的帐号和密码。2、  应用服务器端:(1)       运行DCOMCNFG.EXE,打开“分布式COM配置属性”窗口;(2)       全局安全性设置:设置“默认属性”页的“默认身份验证级别”为“无”;(3)       特定COM应用程序的安全性设置:a、※ “安全性”页,设置“使用自定义访问权限”、“使用自定义启动权限”,可以在自定义里加入EveryOne;b。、※ “身份标识”页,最好选择“指定用户”(调试时可选择“交互式用户”;最好不要使用“启动用户”,除非应用服务器和客户端在同一台机器上)。
    另外 : 关闭两方的windows防火墙(方法:网上邻居----“属性”----本地连接----属性----高级----设置---关闭防火墙)