中间层用的是DataSetProvider,是否是只要运行了它就会自动注册?(50分)

  • 主题发起人 主题发起人 nickylin
  • 开始时间 开始时间
N

nickylin

Unregistered / Unconfirmed
GUEST, unregistred user!
我是这方面的新手,才开始学,我做的第一个例子的时候,
运行服务器端程序,它就自动注册了。
可这次我运行了无数次都没有注册,我都是用的DataSetProvider。
由于没有注册,
我的客户端程序的SocketConnetction选择ServerName时就找不到,
出现提示:Windows Socket error:不能做任何连接,因为目标机器积极地拒绝它。
(10061),on API'connect'
这是由于什么原因啊?
 
还有,第一次我是用的DataBase加TQuery,
这次我是用的ADOConnection加TADODataSet。
 
是否是因为已注册了一个,而这个就需要手动注册呢?
如果要自己去手动注册,该如何注册呢?
有谁能帮帮我啊?
 
你可能忘了启动Scktsrvr,Socket连接是三层中最易连接的方法。
 
那要如何启动这个服务呢?
 
你能这样问,那肯定是这个问题了,上面的文件名写错,应是:Scktsrvr.exe
Path:program Files/Borland/Delphi/Bin/Scktsrvr.exe
 
TO nickylin:这个不关DataSetProvider的问题。在Delphi安装目录下的BIN目录里面有scktsrvr.exe,这个就是Socket服务器,在你的服务提供方
(也就是你自己开发的服务器)的机器必须先启动了这个Socket服务器,客户端的SocketConnetction
才能连接上你自己开发的服务器。
 
我启动了这个服务了,但是它的servername只找到了我第一次测试时注册的,
这次的这个服务器端程序还没有注册。我怎么才能注册?
(好象是自动注册的,可我运行了它也没有注册)
 
TO nickylin:
你的服务器是用DCOM、MTS/COM+或者CORBA结构?不同的结构有不同的注册的方法。下面是
在服务器机器上注册的方法:
1、对于DCOM,运行一次服务器就成。
2、对于MTS/COM+DCOM,在Windows的MTS平台注册或者打开COM+所在工程后用RUN->INSTALL
MTS OBJECT菜单注册。
3、对于CORBA,在服务器机器上不用注册,只要把Borland Smart Agent启动起来后,
客户端就能连接上。
 
应该试运行一下就注册,但不知你的情况是.....?
还有一个方法,要么你直接在类型库中注册:
主菜单下:View/Type libery 点击快捷键:Registe type libery
 
TO nickylin:
补充:
要注意的是,无论是调用DCOM或者是MTS COM+服务对象,客户端和服务器都要注册目的对象的类型库(Type Library)。
 
To Cash_HYJ:
我该如何看服务器是什么结构呢?(我在计算机的服务里看见有COM+的,实在是不好
意思,我还是一个很菜的菜鸟,在此对两位的帮助表示衷心的感谢!)。
对于MTS/COM+DCOM(我这机子应该就是这了),我具体该如何去注册?
还有,我的D6的type library是显灰的,我无法用。这怎么办啊?
 
还有,如果是在客户端,我又该如何注册type library?
再次表示我对两为的谢意!!!!!!
 
To nickylin:
我说的结构是指应用程序服务器的系统结构,不是指PC的,你要区别开来。
要知道它是什么结构,那是你当初设计服务对象时选择什么结构。从你上面的话里,
你说我运行后就注册,那服务对象所在的程序应该是EXE程序了吧,我相信你是采用默认
的,所以我猜测是DCOM。
既然是DCOM,而且是把服务器设计和编译成EXE文件,那么你可以在Server和Client两方
的注册如下:
1、Server:A、把DCOM服务程序在服务器机器上运行一次;B、用Delphi自带的Tregsvr
(在Delphi/Demos/Tregsvr下的工程)软件来注册。
2、Clent:同上。
 
china_delphi说得对
 
To china_delphi:
我要纠正你一点,不是"快捷键:Registe type libery",而是在打开服务对象所在工程
时,用菜单"Import type library"可以注册COM组件。
 
To Cash_HYJ:
接受意见,是我记错了,谢谢!
To nickylin:
你重新作一个例子,试一下,最好用SocketConnetction,更容易,易发现问题。
 
To china_delphi And nickylin:
对,用Socket通信协议是比较简单方便。
 
对于Import type library里,我用了creat unit,可好象不行。
用add我的project(选的是DCOMEXTLIB)提示加载类型库/DLL失败。
这里该怎么import啊?
 
To nickylin:
你已经有Project.tlb文件了嘛,根本不用再create unit,我已经告诉你注册的方法,要看
清楚。
既然是DCOM,而且是把服务器设计和编译成EXE文件,那么你可以在Server和Client两方
的注册如下:
1、Server:A、把DCOM服务程序在服务器机器上运行一次;B、用Delphi自带的Tregsvr
(在Delphi/Demos/Tregsvr下的工程)软件来注册。
2、Clent:同上。
 
后退
顶部