有两台计算机(windows 2000专业版)。一台用于创建服务器,在remote data module中放入一个tdatasetprovider和tquery,选择数据库之后按‘运行’注册。把这个程序拷到另一台机子上运行注册,可是在创建客户端程序的时候,放入一个tdcomconnection,选择了机子名称和servername之后,想把connected设为true时,却出现了‘拒绝访问’,请问这是怎么回事呀!谢谢!!

解决方案 »

  1.   

    你是不是没有打开scktsrvr.exe,delphi3层程序需要运行此,在delphi的安装目录中
      

  2.   

    兄弟,不行呀!
    我用的是dcom,好像不用这个scktsrvr.exe,不过有些文章说要有DBClient.dll和MIDAS.dll的支持!不过我不懂它们在哪里或者是哪里有得下。然后又装到哪里去!!还请各位兄弟确认,知道的就讲一下。不胜感激!!
      

  3.   

    这种结构是典型的RPC应用模式,RPC应用有个比较容易忽视的问题就是身份验证的问题。具体针对楼主的问题就是,在默认情况下客户机使用的帐号,必须在服务器的帐号列表中存在。也就是说当客户端程序在默认情况下使用当前登陆的用户名和密码来连接服务器的时候,服务器上必须存在相应的用户名和密码。
      

  4.   

    呵呵 
    这个问题可能是这样的
    是不是你服务器的远程数据模块的connection么有打开啊
      

  5.   

    感谢各位兄弟!不过还是不行呀!没有想到刚涉足delphi就遇到麻烦!!
    我的两台机子都互相访问过了!!远程数据模块不是只要三个属性吗!name,oldcreateorder,tag。没有connection呀!
    我想把tdcomconntion换成tsocketconnection,可是delphi却老是响应不过来!死了!!
      

  6.   

    有时出现rpc的错误!!
    不过我都打开了这个服务呀!请问柯南!
    ‘在默认情况下客户机使用的帐号,必须在服务器的帐号列表中存在’,怎么才让它存在列表中呀!
      

  7.   

    如果你使用的DCOM联接就不需要运行scktsrvr.exe,但是你需要配置DCOM。具体如下(以WIN2K为例):
    服务端的设置:
    1。启动Windows的“运行“,输入“dcomcnfg“
    2。从中找到你的应用程序服务器,将其中的“默认身份验证级别“改成“无“。
    3。其中还有一些设置,请根据你的情况进行。
    4。拷贝“midas.dll“到服务器的System32目录下,服务端必须注册这个DLL。
    客户端:
    1。拷贝“midas.dll“到客户机的System32目录下,不用注册,在客户程序运行时它会自动注册。
    2。客户端必须安装DCOM。
    3。拷贝你的客户端程序到指定目录。